How to stop a video in AVPlayer?
42,085
Solution 1
AVPlayer does not have a method named stop
. You can pause
or set rate
to 0.0.
Solution 2
I usually seekToTime 0.0, then pause. It work perfectly with me. :)
[self.videoPlayer seekToTime:CMTimeMake(0, 1)];
[self.videoPlayer pause];
Solution 3
If you dont want to set the av player to nil, a better approach might be :
videoPlayer.replaceCurrentItemWithPlayerItem(nil)
Solution 4
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;
Solution 5
We have swift protocol extensions - rejoice.
extension AVPlayer {
func stop(){
self.seek(to: CMTime.zero)
self.pause()
}
}
Author by
iTag
Updated on January 10, 2020Comments
-
iTag over 4 years
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];