在没有MPMoviePlayerViewController的情况下设置MPMoviePlayerController方



似乎将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];

这部电影是以肖像的方式播放的,而且一直锁在那里,但我想以风景的方式播放。

我创建了一个根UIViewController,并将MPMoviePlayerViewController作为它的子级。这创建了所需的效果。

我认为这可能会有所帮助。

- (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;
}

最新更新