iPad отображается в неправильной ориентации после отклоненияMoviePlayerViewControllerAnimated - PullRequest
2 голосов
/ 05 сентября 2010

В приложении для iPad отображается полноэкранный фильм с использованием удобного класса MPMoviePlayerViewController. Я представляю это так:

 [self.hostController presentMoviePlayerViewControllerAnimated:playerViewController];

И позже, когда мне сообщили, что игра окончена, я отклонил это так:

 [self.hostController dismissMoviePlayerViewControllerAnimated];

Работает нормально, кроме случаев, когда пользователь поворачивает iPad во время воспроизведения фильма:

1 - iPad находится в вертикальной ориентации. Мой взгляд вертикальный. 2- Пользователь запускает фильм в вертикальной ориентации. Плеер вертикальный. 3- Пользователь поворачивает iPad в горизонтальной ориентации. 4- Игрок переключается в горизонтальную ориентацию. Все идет нормально. 5- Фильм останавливается, проигрыватель закрывается, я снова появляюсь, iPad все еще в горизонтальном положении, но мой вид остался в вертикальной ориентации, был в шаге 1. Теперь он смотрит вбок.

Конечно, если пользователь поворачивает iPad, он возвращается в нормальное состояние. Мой взгляд тогда вращается нормально, поскольку iPad вращается.

Кто-нибудь когда-нибудь сталкивался с этим? Легкое исправление?

Спасибо.

1 Ответ

2 голосов
/ 05 сентября 2010

Я сталкивался с этим много раз, и это похоже на ошибку Apple (и сообщал об этом).

Единственный способ (я нашел) для этого - слушать уведомления UIDeviceOrientationDidChangeNotification и UIApplicationDidChangeStatusBarOrientationNotification. Используйте относительную метку времени в этих уведомлениях; если они оба происходят в течение секунды, вы можете быть уверены, что изменение строки состояния является результатом изменения ориентации пользователя, а не изменения медиа-SDK в ориентации строки состояния. Затем, когда фильм закончится, вы можете сказать контроллеру вида, что он должен повернуться в альбомную ориентацию.

...