设计:
ViewController :有一个播放器视图和一个容器视图。
播放器视图:加载AVPlayer,在播放器视图的底部有一个子视图(PlayerControlView),用于加载播放器控件(播放/暂停/进度条/全屏等)。
PlayerControlView:一个布局了播放器控件的自定义UIView。
我可以在正常模式下加载AVPlayer和播放器控件(例如,不是全屏)。播放正常,所有控件都工作正常。
问题:
我希望AVPlayer在用户点击播放器控件上的全屏图标时全屏显示。我可以通过更改播放器视图的框架并将AVPlayerLayer的Z位置设置为100来使AVPlayer全屏显示。
问题是,只有当我没有对AVPlayer进行任何更新(例如,进度条/点击播放按钮等)时,playerControlView才会保持全屏。一旦滑块上的播放进度更新完成,AVPlayer就会退出全屏并返回到正常模式。
播放器控件不会重新定位到播放器视图的底部。它们保持在以前的位置上。在正常模式下,播放器控件会在方向更改时正确布局。
有没有人能告诉我我采取的方法是不是正确的?如果没有,请建议采用正确的设计来实现AVPlayer的全功能播放器控件。
提前谢谢你,纳温
发布于 2017-02-20 14:56:05
您需要覆盖播放器视图控制器中的viewWillLayoutSubviews方法,并在那里更新播放器视图的帧。
发布于 2021-10-07 07:36:28
我已经解决了这个问题:
全屏定义了AVPlayerViewController的子类,我们称它为CustomPlayer.
https://stackoverflow.com/questions/28860173
复制相似问题