iOS связывает сторонний двоичный фреймворк, вызывая странное поведение AVFullScreenViewController - PullRequest
0 голосов
/ 28 февраля 2019

Я внедряю сторонний 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% уверен, что отсоединение этого бинарного фреймворка позволяет видео вращаться в обычном порядке.

У меня нет доступа к источнику фреймворка, но я даже не могу думать о том, что они могли бы там сделать, что бывызвать это.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...