我有一个tableview,其中一个单元格包含AVPlayer渲染视频的视图。工作良好。我想做的是允许用户旋转设备然后让AVPlayer渲染到另一个全屏视图。有关如何做到这一点的任何指示?
我已成功将AVPlayer的CALayer添加为全屏视图的子图层,但是一旦我这样做,AVPlayer就会停止播放,我无法再次启动它。我没有得到有关其状态的通知,也没有错误。
我很感激任何方向。
答案 0 :(得分:0)
假设我们有MoviePlayerVC将AVPlayerLayer添加为子图层,并且它是MainVC的子视图控制器。
<强>设置强>
window.rootViewController = mainVC;
[mainVC ftg_addChildVC:moviePlayerVC]; // Using container view controller
启用全屏模式有3种方法
删除moviePlayerVC然后显示
[moviePlayerVC ftg_removeFromParentVC]; dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)(0.1 * NSEC_PER_SEC)),dispatch_get_main_queue(),^ { //这使它在另一个运行循环中 [mainVC presentViewController:moviePlayerVC animated:YES completion:nil]; });
这不如窗口方法那么快和顺畅
全屏
[moviePlayerVC ftg_removeFromParentVC];
[UIApplication sharedApplication].keyWindow.rootViewController = moviePlayerVC;
<强>嵌入式强>
[UIApplication sharedApplication].keyWindow.rootViewController = mainVC;
[mainVC ftg_addChildVC:moviePlayerVC];