30

我正在使用此代码使用 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];
4

5 回答 5

67

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

于 2013-07-24T10:57:49.940 回答
33

我通常seekToTime 0.0,然后暂停。它非常适合我。:)

[self.videoPlayer seekToTime:CMTimeMake(0, 1)];
[self.videoPlayer pause];
于 2014-12-09T09:16:46.463 回答
26

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

videoPlayer.replaceCurrentItemWithPlayerItem(nil)
于 2014-09-10T19:28:31.663 回答
22

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

在您的代码中,您可以使用它:

[self.videoPlayer pause];
[self.avPlayerLayer removeFromSuperlayer];
self.videoPlayer = nil;
于 2013-07-24T11:18:41.700 回答
9

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

extension AVPlayer {
   func stop(){
    self.seek(to: CMTime.zero)
    self.pause()
   }
}
于 2020-01-10T04:39:08.857 回答