我在我的应用程序中使用AVPlayer播放视频,大约320x200帧 . 该avplayer还有一个自定义的“全屏”按钮作为叠加添加,就像youtube app播放器一样 . 我如何实现它,以便当应用程序处于纵向模式并且用户单击全屏按钮时,视频将旋转到全屏但处于横向模式?我尝试使用转换,它部分工作,因为当它处于全屏模式时,如果用户将设备切换为纵向; avplayer框架突然改变 . 我希望它像youtube应用程序一样工作,即在全屏模式下,即使用户旋转设备也应保持这种状态 . 关闭全屏时才应恢复原始尺寸 . 由于应用程序的设计,我不想使用avplayerviewcontroller . 在此先感谢您的帮助 .
2 回答
好问题!允许AVPLayerLayer全屏显示非常重要 . 一个视图的大量应用程序配置,以处理纵向和横向,只是为了显示全屏视频?请 .
变换和帧操作可以解决此问题:
设置AVPlayerLayer的帧会更改其父级的帧 . 将原始帧保存在视图子类中,以将AVPLayerLayer最小化回原位 . 这允许自动布局 .
重要信息 - 仅当播放器位于视图子类的中心时才有效 .
不完整的例子:
在我看来,你应该创建一个FullScreenViewController,它被强制始终支持横向 . 然后在按下“全屏”按钮时显示当前视图控制器,并将AVPlayer实例传递给它,然后为AVPlayerLayer设置帧并继续播放 . 解雇后,它会恢复正常,我的意思是你的“肖像”模式 .