使用AVPlayer播放视频 - 视频在某些时候停止

时间:2016-08-05 13:26:06

标签: ios objective-c xcode avplayer

我在行中使用了少量UIViewController来进行演示。在每个屏幕上我都需要播放视频 这是我在每个播放视频的屏幕上使用的代码:

NSURL *videoURL = [[NSBundle mainBundle]URLForResource:@"video" withExtension:@"mp4"];

AVPlayer *avPlayer = [[AVPlayer alloc]initWithURL:videoURL];
AVPlayerLayer *avPlayerLayer =[AVPlayerLayer playerLayerWithPlayer:avPlayer];

[avPlayerLayer setFrame:CGRectMake(0, 0, videoWidth, videoHeight)];

_videoView.layer.sublayers = nil;
[_videoView.layer addSublayer:avPlayerLayer];

[avPlayer seekToTime:kCMTimeZero];
[avPlayer play];

第一个屏幕是UIViewController,用户可以在其中选择其中一个场景。在主屏幕上,我还使用上面编写的代码显示视频。用户可以单击下一个按钮,然后我显示下一个屏幕。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];

HomeViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"home_vc"];

[self.navigationController pushViewController:vc animated:YES];

当场景完成后,我再次显示主屏幕,用户可以选择下一个场景。

在几个屏幕后,我遇到了视频问题 在我应该看到视频的地方,我只能看到黑屏。我猜这个问题与记忆有关,但我找不到解决办法。

1 个答案:

答案 0 :(得分:0)

viewDidDisappear调用[avPlayer pause]方法中,移除所有观察者并将avPlayeravPlayerLayer参考设置为nil