问题
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