Установка ориентации MPMoviePlayerController без MPMoviePlayerViewController - PullRequest
0 голосов
/ 22 марта 2012

Кажется, лучший (только?) Способ повернуть MPMoviePlayerController в ландшафт - это использовать MPMoviePlayerViewController .

Я сейчас модифицирую игру с открытым исходным кодом, которая, к сожалению, делаетне установлен корневой UIViewController.Есть ли способ установить ориентацию только с помощью MPMoviePlayerController, или мне нужно слиться с ним и взломать корневой UIViewController в это приложение?

Редактировать: в ответ на Shivan Raptor игра называется Canabalt: https://github.com/ericjohnson/canabalt-ios. Я создаю экземпляр MPMoviePlayerController следующим образом:

self.moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:self.videoTempFilePath];
self.moviePlayerController.repeatMode = MPMovieRepeatModeNone;

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlaybackComplete:)
                                             name:MPMoviePlayerDidExitFullscreenNotification
                                           object:self.moviePlayerController];
[glView addSubview:self.moviePlayerController.view];

// MUST SET THIS HERE AFTER WE ADD AS SUBVIEW
self.moviePlayerController.fullscreen = YES;

[self.moviePlayerController play];

Фильм воспроизводится в портретном режиме и остается там заблокированным, но я бы хотел воспроизвести его в альбомной ориентации.

Ответы [ 2 ]

0 голосов
/ 27 июня 2012

Я думаю, что это может быть полезно.

- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {

if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {
    [self.view setTransform:CGAffineTransformMakeRotation(M_PI / 2)];
    return true;
}
else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
    [self.view setTransform:CGAffineTransformMakeRotation(M_PI * 2)];
    return true;
}
else if (toInterfaceOrientation == UIInterfaceOrientationPortrait) {
    [self.view setTransform:CGAffineTransformIdentity];
    return true;
}
else return false;
}
0 голосов
/ 30 марта 2012

Я создал корневой UIViewController и сделал MPMoviePlayerViewController дочерним.Это создало желаемый эффект.

...