2016-06-30 13 views
1

マイコード:

ここ
playerController = [[AVPlayerViewController alloc]init]; 


    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(playerItemDidReachEnd:) 
               name:AVPlayerItemDidPlayToEndTimeNotification 
               object:[playerController.player currentItem]]; 

    playerController.player = [AVPlayer playerWithURL:videoURL]; 

    playerController.view.frame = self.view.frame; 

    [playerController.player seekToTime:kCMTimeZero]; 

    playerController.player.actionAtItemEnd = AVPlayerActionAtItemEndPause; 

    [playerController.player play]; 

    [self presentViewController:playerController animated:YES completion:nil]; 

私は、特定の時間にビデオを停止します。特定の時間にAVPlayerを停止する方法は?

+0

何をしますか?たとえば、3分34秒でビデオを停止しますか? – AnthoPak

+0

はいanthonin ..... – ragu

+0

この特定の時刻は常に同じですか? – AnthoPak

答えて

3

何がしなければならないことは次のとおりです。

AVPlayer *player = [AVPlayer playerWithURL:[NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"]]; 

[player play]; 

self.playerObserver = [player addBoundaryTimeObserverForTimes:@[[NSValue valueWithCMTime:CMTimeMake(1, 1000)]] queue:NULL usingBlock:^{ 
    NSLog(@"Video started playing"); 

    [player performSelector:@selector(pause) withObject:nil afterDelay:3.0]; //will pause player after 3.0 seconds 
    [player removeTimeObserver:self.playerObserver]; 
}]; 

このコードは追跡されます:

@property (strong) id playerObserver; 

が.Mファイルにこのコードを追加します。

は.hファイルで次のプロパティを作成します。ビデオの再生が開始されます。その後、いつでも(ここでは3秒)、プレイヤーを一時停止します。少なくとも、我々はプレーヤー上のオブザーバーを取り除く。

希望すると便利です。

+0

私は転記する前にコードを試しました** **動作します。あなたの実装はかなり異なるかもしれません。あなたの2番目の問題については、私は最初の修正がそれに責任があると思います。なぜなら、 '一時停止'が再生ループを作ることができなかったからです。 – AnthoPak

+0

あなたは、 'playerController.player.currentItem.forwardPlaybackEndTime = CMTimeMake(timeDuration、1);'を追加して、バグの原因となるのはこの行だと言いました。 – AnthoPak

+0

ありがとうございます。 upvoteをしました! – Jerome

0

SWFIT 3バージョンは@Anthonin Cの答えです。

player = AVPlayer(url: tmpURL) 
player?.perform(#selector(player?.pause), with: nil, afterDelay: 3) 
関連する問題