#iphone #youtube #youtube-api #ios10 #screen-rotation
#iPhone #YouTube #youtube-api #ios10 #поворот экрана
Вопрос:
Я использую YTPlayerView Youtube API для поддержки видео в моем приложении.
До выпуска iOS10 мое приложение корректно переключало видео в альбомную ориентацию, когда видео воспроизводилось на весь экран и вращалось устройство.
Поскольку я обновился до iOS10, видео больше не вращается вместе с устройством, это можно воспроизвести в симуляторе (работает с iOS 9, больше не работает с iOS 10).
Мое приложение поддерживает только портретный режим, но я смог переключать полноэкранные видео в альбомную ориентацию при воспроизведении в полноэкранном режиме.
Любой совет? Спасибо
Комментарии:
1. Я думаю, что только Гуглер может ответить вам на это. Я не вижу никаких обновленных изменений в отношении этой проблемы, которые вы можете увидеть в API данных и IOS Helper . Если вы считаете, что это ошибка, попробуйте подать заявку на эту проблему.
Ответ №1:
Из-за того, как режим ориентации обрабатывается в 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, который является подклассом UIViewController, отвечающим за отображение видео YouTube в полноэкранном режиме.