У меня есть приложение для iPhone (iOS6 +), которое поддерживает все ориентации интерфейса. Тем не менее, только поддержка ландшафта должна поддерживаться, когда MPMoviePlayerController воспроизводит полноэкранный режим видео.Принудительная ориентация ландшафта на полноэкранном режиме MPMoviePlayerController предотвращает правильное вращение при выходе из полноэкранного режима
Я нашел следующее решение для переполнения стека, и оно работает.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerWillEnterFullscreenNotification:) name:MPMoviePlayerWillEnterFullscreenNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerWillExitFullscreenNotification:) name:MPMoviePlayerWillExitFullscreenNotification object:nil];
...
-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
if (self.landscapeOnlyOrientation) {
return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}
return UIInterfaceOrientationMaskAll;
}
- (void)moviePlayerWillEnterFullscreenNotification:(NSNotification*)notification {
self.landscapeOnlyOrientation = YES;
}
- (void)moviePlayerWillExitFullscreenNotification:(NSNotification*)notification {
self.landscapeOnlyOrientation = NO;
}
Однако досадная проблема сохраняется, а именно, что если видео выходит полноэкранный режим в книжной ориентации (после игры в вынужденном пейзаж), основной вид не вращается назад , Мне нужно вручную повернуть устройство в альбомную и обратно в портрет, чтобы инициировать обновление ориентации. Есть ли способ, с помощью которого я могу запрограммировать этот вид обновления программно?
Следующий набор скриншотов должен пояснить, что я имею в виду:
NB: По различным причинам, использование MPMoviePlayerViewController не представляется возможным.
Я отправил сообщение об ошибке в Apple, по этому вопросу месяцев назад. Я предлагаю вам сделать то же самое. Проблема заключается в том, что с ориентацией на методы управления базовым контроллером просмотра не проводятся консультации. – matt
Любые предложения по обходу? – svth
Нет. Вы можете попытаться предотвратить использование полноэкранного режима. Или просто не используйте MPMoviePlayerController. В основном это просто большая несогласованность от Apple, и разработчики должны следить за ними, пока они не исправят это. – matt