目的:公司项目接入了别人的链接,然后用wkwebview加载该链接播放视频,当点击全屏按钮的时候,调起了AVPlayerViewController系统播放器。
因为腾讯的SuperPlayer 播放器,Category文件下UIViewController+SuperPlayerRotation
重写了supportedInterfaceOrientations 和preferredInterfaceOrientationForPresentation 这个方法,导致AVPlayerViewController 不能横屏播放,即使手机允许了旋转
即使工程内只支持竖屏,AVPlayerViewController也会自动旋转横屏。
(在webview VC里面已经重写了这两个方法但是还是不管用,猜测因为项目启动的时候就加载了UIViewController的分类,所以导致在webview的控制器内再重写方法,没有重写到AVPlayerViewController里面,只是重写了webview里面了,所以不起作用)
解决办法:
把UIViewController+SuperPlayerRotation 文件删除,或者屏蔽- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
}
#import
@interfaceUIViewController(SuperPlayerRotation)
@end
#import "UIViewController+SuperPlayerRotation.h"
@implementationUIViewController(SuperPlayerRotation)
/**
* 默认所有都不支持转屏,如需个别页面支持除竖屏外的其他方向,请在viewController重新下边这三个方法
*/
// 支持哪些屏幕方向
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}
// 默认的屏幕方向(当前ViewController必须是通过模态出来的UIViewController(模态带导航的无效)方式展现出来的,才会调用这个方法)
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationPortrait;
}
@end
网友评论