Я пытаюсь воспроизвести видео в представлении, чтобы я мог перемещать его, выполнять компоновку вместе с другими представлениями, но я не могу заставить его работать с использованием MPMoviePlayerController. Я наткнулся на эту ссылку на , как воспроизводить видео в портретном режиме , но это невозможно, поскольку источник видео исходит из Интернета и должен воспроизводиться на разных платформах, не только на iPhone.
Я успешно поворачивал видео и масштабировал его, но он все еще содержится в окне UIWindow, которое заполняет весь экран. Есть ли способ создать промежуточное окно UIWindow, но не видимое на текущем экране, так что вы можете воспроизвести видео там и, возможно, добавить подпредставления и вернуть все как UIView, где я могу разместить его где угодно? Подобно созданию контекста CGGraphics, рисуйте там объекты и выводите их в виде изображения. Это также предотвратит поворот текущего экрана из портретного в альбомный.
----- 2010/06/22 06: 10 + 08: 00 ---
В ответ на ответ Jasarien (ниже), на самом деле можно вращать и масштабировать видео. После предварительной загрузки видео создается еще один экземпляр UIWindow, который в этот момент становится ключевым окном. Создав селектор обратного вызова в MPMoviePlayerContentPreloadDidFinishNotification, можно применить модификацию преобразования текущего ключевого окна.
-(void)myMovieFinishedPreloading:(NSNotification*)aNotification {
NSArray *windows = [[UIApplication sharedApplication] windows];
UIWindow *moviePlayerWindow = nil;
if ([windows count] > 1)
{
moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];
}
CGAffineTransform transform = CGAffineTransformMakeScale(0.5, 0.5);
transform = CGAffineTransformRotate(transform, -90.0f*M_PI/180.0f);
[moviePlayerWindow setTransform:transform];
}
Теперь мой вопрос заключается в том, что он является частью UIWindow и, поскольку UIWindow является подклассом UIView, возможно ли подписать этот UIView? Также я не могу отключить режим автоматического поворота при предварительной загрузке видео.