我在行中使用了少量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];
当场景完成后,我再次显示主屏幕,用户可以选择下一个场景。
在几个屏幕后,我遇到了视频问题 在我应该看到视频的地方,我只能看到黑屏。我猜这个问题与记忆有关,但我找不到解决办法。
答案 0 :(得分:0)
在viewDidDisappear
调用[avPlayer pause]
方法中,移除所有观察者并将avPlayer
和avPlayerLayer
参考设置为nil