我正在使用YTPlayerView Youtube API来支持我的应用程序中的视频。
在iOS10发布之前,当视频全屏播放并旋转设备时,我的应用程序可以正确地将视频切换到横屏。
我升级到iOS10后,视频不再随设备旋转,这可以在模拟器中重现(适用于iOS 9,不再适用于iOS10)
我的应用程序只支持纵向模式,但我可以在全屏播放时将全屏视频切换到横向。
有什么建议吗?由于
由于iOS 10中方向模式的处理方式,您有以下选项:
"政治"正确的解决方案
1)允许你的应用在info.plist
中的所有方向模式下运行2)禁止在其他任何地方出现景观
破解方案
你的AppDelegate会在每次你旋转手机时根据特定窗口支持的方向被调用。因此,如果你能检测到"当前窗口"中的视图控制器是youtubevideo视图控制器,那么你可以返回所有方向,否则返回portret。
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
guard let topController = window?.topController() else {
return application.supportedInterfaceOrientations(for: window)
}
let className = NSStringFromClass(type(of: topController))
let hackyViewControllers = ["avfullscreenviewcontroller"]
if hackyViewControllers.contains(className.lowercased()) {
return .allButUpsideDown
} else {
return .portrait
}
}
**正如你所看到的,我们检查AVFullScreenViewController,这正是负责全屏显示youtube视频的UIViewController子类