0

私は同じ質問をしています: MPMoviewPlayerController 全画面再生回転 基になる UIViewController を縦向きモードのみで回転 (回転は許可されていません)

この質問の答えは非常に役立つと思います。次に、この目的のために UIViewController を追加します。最初: youtubePlayer は MPMoviePlayerController です。下のコードは、youTubeView のフレームを youtubePlayer に送信し、youTubeView で youtubePlayer を表示します。

[youtubePlayer.view setFrame:youTubeView.bounds];
[youTubeView addSubview:youtubePlayer.view];

FullScreen に切り替えた後、youtubePlayer.view を新しい UIViewController に追加すると、自動回転できます: playerFullScreen = [[UIViewController alloc]init];

[playerFullScreen.view addSubview:youtubePlayer.view];
[nav pushViewController:playerFullScreen animated:NO];

しかし、画面が白くなり、ビデオが表示されません。どうすればよいですか?

4

1 に答える 1

0

使用する必要はありませんUIViewController; MPMoviePlayerViewControllerうまく機能し、YouTubeのようにモーダルにビデオを表示する独自の機能があります(私は思います)。また、の代わりにaddSubview、を使用してみてくださいsetView

私はこれを研究するのに長い時間を費やしました、そして以下は完璧に機能します。

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];

//Calls for movie playback once video is finished
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlayBackDidFinish:)
                                             name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:moviePlayer];
playerView = [[MPMoviePlayerViewController alloc]init];
[moviePlayer setControlStyle:MPMovieControlStyleFullscreen];
[playerView setView:moviePlayer.view];

[moviePlayer.view setFrame: self.view.bounds];  // player's frame must match parent's

[self presentMoviePlayerViewControllerAnimated:playerView];

[moviePlayer play];
NSLog(@"playing video view");

そしてその呼び出しを却下するとき

- (void) moviePlayBackDidFinish:(NSNotification*)notification {
    MPMoviePlayerController *player = [notification object];
    [[NSNotificationCenter defaultCenter] removeObserver:self      
                                                    name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:player];

    [self dismissMoviePlayerViewControllerAnimated];

    NSLog(@"removed video view");
}
于 2012-07-23T07:55:46.600 に答える