如何在AVPlayer中停止视频?

时间:2013-07-24 10:47:44

标签: objective-c avfoundation avplayer

我正在使用此代码使用avplayer播放视频文件如何停止

 [videoView setHidden:NO];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path2 = [documentsDirectory stringByAppendingPathComponent:saveFileName];
    NSURL *url1 = [[NSURL alloc] initFileURLWithPath: path2];
    videoPlayer = [AVPlayer playerWithURL:url1] ;
    self.avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:videoPlayer];

    //[self willAnimateRotationToInterfaceOrientation];
    avPlayerLayer.frame = videoView.bounds;
    [self.videoView.layer addSublayer: avPlayerLayer];

    [self.videoPlayer play];

我试过这个不起作用

    //[self.videoPlayer release];

5 个答案:

答案 0 :(得分:54)

AVPlayer没有名为stop的方法。您可以pause或将rate设置为0.0。

答案 1 :(得分:26)

我通常搜索到时间0.0,然后暂停。它与我完美配合。 :)

[self.videoPlayer seekToTime:CMTimeMake(0, 1)];
[self.videoPlayer pause];

答案 2 :(得分:18)

您可以暂停并将AVPlayer对象值设置为nil。

在你的代码中你可以使用它:

[self.videoPlayer pause];
[self.avPlayerLayer removeFromSuperlayer];
self.videoPlayer = nil;

答案 3 :(得分:15)

如果你不想将av播放器设置为nil,那么更好的方法可能是:

videoPlayer.replaceCurrentItemWithPlayerItem(nil)

答案 4 :(得分:5)

我们有快速的协议扩展-高兴。

extension AVPlayer {
   func stop(){
    self.seek(to: CMTime.zero)
    self.pause()
   }
}