Я внедряю сторонний SDK в свое приложение, используя XCode для связывания их двоичного файла.Реализация SDK работает нормально, однако, просто связав этот каркасный файл (даже если я на самом деле никогда не обращался к нему), мои AVFullScreenViewController
больше не поворачиваются автоматически в альбомную ориентацию при воспроизведении видео 16: 9.
Я не использую подклассы AVFullScreenViewController
, videojs
генерирует собственный проигрыватель, который выдает типичный AVFullScreenViewController
при полноэкранном просмотре видео.
Очень странно и неопределенно, я знаю.Просто надеюсь, что кто-то может дать мне подсказку.Я пытался:
static NSString * const VIDEO_CONTROLLER_CLASS_NAME_IOS7 = @"MPInlineVideoFullscreenViewController";
static NSString * const VIDEO_CONTROLLER_CLASS_NAME_IOS8 = @"AVFullScreenViewController";
#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000
- (NSUInteger)supportedInterfaceOrientations
#else
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
#endif
{
UIWindow* window = [[UIApplication sharedApplication] keyWindow];
UIViewController* rootvc = [window rootViewController];
UIViewController* vc1 = [rootvc presentedViewController];
if ([[rootvc presentedViewController] isKindOfClass:NSClassFromString(VIDEO_CONTROLLER_CLASS_NAME_IOS7)] ||
[[rootvc presentedViewController] isKindOfClass:NSClassFromString(VIDEO_CONTROLLER_CLASS_NAME_IOS8)]) {
[[UIDevice currentDevice] setValue:@(UIInterfaceOrientationLandscapeLeft) forKey:@"orientation"];
return UIInterfaceOrientationMaskPortraitUpsideDown;
}
else {
[[UIDevice currentDevice] setValue:@(UIInterfaceOrientationPortrait) forKey:@"orientation"];
return UIInterfaceOrientationMaskPortrait;
}
}
безрезультатно.Я вижу, как AVFullScreenViewController
становится представленным и поворачивает ориентацию, но само видео остается портретным, несмотря ни на что.
Приложение построено с использованием Ionic 3 (фреймворк будет доступен через cordova), а исходная сторона скомпилированачерез XCode 9.4.1.Протестировано на устройствах под управлением iOS 11 и 12. Мне не нужно проверять дополнительные параметры ориентации устройства и менять свой Info.plist
для этой конкретной ситуации, но я попробовал это.Я также на 100% уверен, что отсоединение этого бинарного фреймворка позволяет видео вращаться в обычном порядке.
У меня нет доступа к источнику фреймворка, но я даже не могу думать о том, что они могли бы там сделать, что бывызвать это.
Спасибо.