How to stop a video in AVPlayer?

纵然是瞬间 提交于 2019-12-29 04:34:07

问题


I am using this code to play video file using avplayer how do I stop it

 [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];

I tried this it doesn't work

    //[self.videoPlayer release];

回答1:


AVPlayer does not have a method named stop. You can pause or set rate to 0.0.




回答2:


I usually seekToTime 0.0, then pause. It work perfectly with me. :)

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



回答3:


You can pause and set AVPlayer object value to nil .

And in your code you can use this :

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



回答4:


If you dont want to set the av player to nil, a better approach might be :

videoPlayer.replaceCurrentItemWithPlayerItem(nil)


来源:https://stackoverflow.com/questions/17831764/how-to-stop-a-video-in-avplayer

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!