2

我的应用程序中有一个MPMoviePlayerViewController,并且正在使用它来全屏播放视频。

这在 iPad 上的 IOS 5 操作系统上运行良好。

但是在 iPad 3 上的 iOS 6 上,播放视频后,状态栏会消失并被空白所取代。

[[UIApplication sharedApplication]setStatusBarHidden:NO]; 有视频的地方用恢复状态栏是不是很马虎?

由于我的应用程序很大,任何人都可以提供替代方法吗?

4

2 回答 2

3

我向 MPMoviePlayerDidExitFullscreenNotification 添加了一个观察者。在这个观察者中,我创建了一个 NSTimer 以在两秒后触发。在 NSTimer 触发的消息中,我重置了状态栏样式以及状态栏。计时器是必需的,因为我注意到状态栏在退出全屏动画完成后很长时间进入不一致状态。

因此,在管理 MPMoviePlayer 的 ViewController 中,我执行以下操作:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerDidExitFullScreenCallback:) name:MPMoviePlayerDidExitFullscreenNotification object:self.moviePlayerController];

然后在通知选择器中:

- (void) moviePlayerDidExitFullScreenCallback:(NSNotification *)aNotification {

    [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(setStatusBarVisible:) userInfo:nil repeats:NO];

}

在 setStatusBarVisible 选择器中:

- (void) setStatusBarVisible: (NSTimer *)timer {
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];
    [[UIApplication sharedApplication] setStatusBarHidden:NO];
}
于 2012-10-12T23:33:15.603 回答
1

我也遇到过同样的问题,iOS 6 似乎有一些问题,使用 MPMovieControlStyleEmbededFullScreen = YES 时可能无法播放视频或两次调用播放器,这会产生一些帧定位问题。

我最终不得不将整个应用程序更改为presentMoviePlayerViewControllerAnimated从视图控制器中使用,这似乎是在这个新的 iOS 6 中播放视频的更合适的方式

MPMoviePlayerController 全屏模式问题

于 2012-10-05T06:57:38.070 回答