Вы используете MPMoviePlayerController
в полноэкранном режиме, поэтому поворот / с, примененные к его виду (и / или его суперпредставлению), не эффективны.
При использовании полноэкранного режима MPMoviePlayerController
фактически использует другой подход, добавляя свой слой рендеринга непосредственно в UIWindow, то есть фактически не использует свое свойство view
.
Для получения текущего UIWindow
, когда фильм воспроизводится в полноэкранном режиме, вы можете использовать следующий фрагмент:
UIWindow *window = [UIApplication sharedApplication].keyWindow;
if (!window)
{
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}
Как только вы получите это окно, примените к нему ваши вращения / с.
Это, однако, приведет ко многим возможным проблемам, которые трудно преодолеть (поверьте мне, там была коллекция футболок). В качестве альтернативы я настоятельно рекомендую вам использовать полноэкранный режим с фальшивкой.
Вместо инициализации игрока, как вы сделали
[moviePlayer setFullscreen:YES animated:YES];
Почему бы просто не инициализировать размер кадра его представления на весь экран - или границы его суперпредставления, как это
moviePlayer.view.frame = myParentViewController.view.bounds;
Затем для получения полноэкранного интерфейса используйте следующий стиль управления:
moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
Таким образом, полученное воспроизведение будет соответствовать любым преобразованиям, сделанным в суперпредставлении, и у вас не будет побочных эффектов.