2012-06-15 53 views
1

我有tabBarViewController其中包含几个页面,和一个loginViewController。我使用[窗口addSubView:]添加视图。MPMoviePlayerController在全屏问题(显示空白黑屏)

当我需要播放全屏视频时,我必须删除窗口中的所有视图才能显示视频,否则,它只是一个黑屏。当视频停止/完成/退出时,我必须手动将子视图添加回窗口。

我知道这是做错的一种方式。如果我没有这样做,当视频切换到全屏时,它将显示在其他视图背面的根窗口视图中。

请给出一些建议。谢谢。

下面是我的代码:

-(void)playMovie:(NSString *)urlStr{ 
NSURL *fileURL = [NSURL URLWithString:urlStr]; 
player = [[MPMoviePlayerController alloc] initWithContentURL:fileURL]; 
player.scalingMode = MPMovieScalingModeAspectFit; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willEnterFullscreen:) name:MPMoviePlayerWillEnterFullscreenNotification object:nil]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willExitFullscreen:) name:MPMoviePlayerWillExitFullscreenNotification object:nil];  
[[appDelegate loginViewController].view removeFromSuperview]; 
[[appDelegate tabBarController].view removeFromSuperview]; 
[[appDelegate navController].view addSubview:player.view]; 
player.fullscreen = YES; 
[player play]; 

}

- (void)willExitFullscreen:(NSNotification*)notification { 
NSLog(@"willExitFullscreen..."); 
[[appDelegate window] addSubview:[appDelegate navController].view]; 
[[appDelegate window] addSubview:[appDelegate loginViewController].view]; 
[[appDelegate window] addSubview:[appDelegate tabBarController].view]; 
[player.view removeFromSuperview]; 

}

回答

0

呈现播放器上使用:

[self presentMoviePlayerViewControllerAnimated:player]; 
//Self should be a View Controller. 

,而不是使用addSubview

此外,你应该确保设置movieSourceTypeplayer(您可以通过访问player.moviePlayer),并作为推荐集合使用player.view.backgroundColor = [UIColor blackColor];避免闪烁的白色背景上播放的背景。

+0

这个答案显然是错误的。有关MPMoviePlayerController而不是MPMoviePlayerViewController的问题。 –

+0

似乎用户在我的回复之前编辑了问题。 – Raspu