2012-07-10 2 views
0

У меня есть один и тот же вопрос с: MPMoviewPlayerController fullscreen playback rotation with underlying UIViewController with portrait mode only (rotation disallowed)Добавить MPMoviewPlayerController в UIViewController для вращения полноэкранного воспроизведения

, и я думаю, что ответ на этот вопрос очень полезно. Затем для этого я добавляю UIViewController. Во-первых: youtubePlayer является MPMoviePlayerController, то под кодом отправки кадра youTubeView на youtubePlayer и показать youtubePlayer на youTubeView:

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

После включения полноэкранного, я хочу добавить youtubePlayer.view к новому UIViewController, то он может автоматически -rotation: playerFullScreen = [[UIViewController alloc] init];

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

но экран становится белым, видео не отображается, что делать?

ответ

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"); 
} 
Смежные вопросы