我试图在我的应用上显示视频。该应用程序隐藏了iPhone顶部面板。玩家似乎工作正常。只有一个恼人的问题:当播放器显示视频时,它有时会显示顶部面板,有时会隐藏它。当它被隐藏时,视频播放器面板被推动一点(与之前的面板尺寸相同)。是苹果虫吗?难道我做错了什么? 这是我的代码:
- (void) showFullscreenMediaWithURL: (NSURL *) mediaURL
{
MPMoviePlayerViewController *ctrl = [[MPMoviePlayerViewController alloc] initWithContentURL: mediaURL];
[[NSNotificationCenter defaultCenter] addObserver:self selector: @selector(playbackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:ctrl.moviePlayer];
ctrl.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
ctrl.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[ctrl setWantsFullScreenLayout:YES];
[self presentMoviePlayerViewControllerAnimated:ctrl];
[ctrl release];
}
-(void) playbackDidFinish:(NSNotification*)aNotification
{
NSLog(@"Finished playback");
MPMoviePlayerController *player = [aNotification object];
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification
object:player];
[player stop];
[self dismissMoviePlayerViewControllerAnimated];
[[captureManager session] startRunning];
}
答案 0 :(得分:0)
如果通过iPhone顶部面板表示iPhone状态栏,那么解决方案应该很简单。 就在present / dismissMoviePlayerViewControllerAnimated之前添加以下内容:
// Hide Status Bar
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
// Show Status Bar
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
更新:我可以看到您的问题。
首先,带有网络指示图标和其他信息的上方栏是status bar(没有别的)。您的问题似乎与ViewController相关,然后是MediaPlayer。换句话说,如果你试图将其他一些ViewController“推”到全屏(就像播放器一样),你会遇到完全相同的问题。
其次,正确的方式,或者我可能会说:我将首选视频控制器加载到全屏的首选方式如下:
还有其他一些方法,但一般来说,这是我推荐的最佳做法和方法。这是相对“很多代码”的实现,这就是为什么我无法帮助你使用代码片段,但总体思路相对简单。
我希望有帮助,E.G:)