Как повернуть MPMoviePlayerController - PullRequest
3 голосов
/ 11 июня 2010

Я создаю приложение для iPhone, которое воспроизводит видео по запросу из веб-службы.

Видео воспроизводится в MPMoviePlayerController, и все отлично работает на устройстве iPhone.

Однако при загрузке приложения iPhone на iPad видео воспроизводится в портретном режиме (с почтовым ящиком сверху и снизу), а не в альбомной ориентации слева, как на iPhone.

Сначала видео вообще не появлялось, однако я исправил это, добавив представление MPMoviePlayerControllers к представлению, которое его создает, в качестве подпредставления, а затем настроил его на воспроизведение в полноэкранном режиме.

-

Изменить на оригинал:

Теперь я играю на iPad во всех поворотах. Есть ли способ остановить его вращение, и просто заставить его играть в LandscapeLeft?

Спасибо, Дуэйн

Ответы [ 3 ]

5 голосов
/ 11 июня 2010

Приложения для iPad должны поддерживать все четыре ориентации интерфейса.

РЕДАКТИРОВАТЬ: Мне не удалось найти официальные документы для цитирования.Может случиться так, что приложения для iPad должны запускать во всех направлениях, хотя вы можете заставить некоторые фрагменты быть альбомными, если это "разумно".Независимо от того, отклоняет ли Apple ваше приложение или нет, это другая проблема, но я думаю, что они вряд ли отклонят видео-приложение, которое воспроизводит видео в альбомной ориентации.

После некоторых экспериментов, кажется, работает следующее:

@interface MyMovieViewController : MPMoviePlayerViewController
@end

@implementation MyMovieViewController
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    return UIInterfaceOrientationIsLandscape(toInterfaceOrientation);
}

@end

Затем просто создайте экземпляр MyMovieViewController вместо MPMoviePlayerViewController.

EDIT 2: MPMoviePlayerViewController отличается от MPMoviePlayerController;Вы используете его, чтобы получить поведение MPMoviePlayerController 2.0-3.1.Вам необходимо добавить контроллер представления в иерархию VC, но это довольно просто (и намного проще, чем возиться с преобразованиями представлений):

MPMoviePlayerViewController * vc = [[MyMovieViewController alloc] initWithContentURL:aUrl];
[self presentMoviePlayerViewControllerAnimated:vc];
[vc.moviePlayer play];
2 голосов
/ 03 ноября 2011

Я нашел этот способ только полезным, но настало время установить желаемый кадр-

theMovie=[[MPMoviePlayerController alloc] initWithContentURL:theURL]; 
// Rotate the view for landscape playback   
[[theMovie view] setBounds:CGRectMake(-230, 155, 480, 350)];
[[theMovie view] setTransform:CGAffineTransformMakeRotation(M_PI / 2)]; 
1 голос
/ 12 июня 2010

Здесь также есть исправление для портрета в альбомной проблеме iPad (см. Ссылку), было бы интересно узнать, что вы сделали, чтобы исправить его, если отличается.1005 *

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