gpt4 book ai didi

ipad - iPad 中的 MPMoviePlayerController 全屏怪癖

转载 作者:行者123 更新时间:2023-12-03 23:54:35 29 4
gpt4 key购买 nike

我想在 View Controller 中显示 MPMoviePlayerController 并让用户使用默认控件(如 YouTube 应用程序)切换全屏。我在一个简单的示例中使用以下代码:

- (void)viewDidLoad {
[super viewDidLoad];
self.player = [[MPMoviePlayerController alloc] init];
self.player.contentURL = theURL;
self.player.view.frame = self.viewForMovie.bounds;
self.player.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.viewForMovie addSubview:player.view];
[self.player play];
}

在用户将视频全屏显示、旋转设备并点击屏幕之前,此方法效果很好。状态栏显示在错误的位置,如下面的屏幕截图所示。

screenshot

我正在使用适用于 iPad 的模板 Tab Bar Application。我只添加了上面的 viewDidLoad、 View 变量和 XIB 中的 UIView 来显示电影播放器​​。

我做错了什么?

最佳答案

是的,我也遇到这个问题。它肯定是 MPMoviePlayerController 本身的一个错误。

我在应用程序中确定的解决方法是在退出全屏模式时自己更正状态栏:

- (void)playerDidExitFullscreen:(NSNotification *)notification {
MPMoviePlayerController *moviePlayer = (MPMoviePlayerController *) notification.object;

if (moviePlayer == self.player) {
UIApplication *app = [UIApplication sharedApplication];
if (app.statusBarOrientation != self.interfaceOrientation) {
[app setStatusBarOrientation:self.interfaceOrientation animated:NO];
}
}
}

这不会在全屏模式下解决问题,但会在之后解决。

当然需要注意的是,需要在通知中加入该函数:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerDidExitFullscreen:) name:MPMoviePlayerDidExitFullscreenNotification object:nil];

关于ipad - iPad 中的 MPMoviePlayerController 全屏怪癖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2852872/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com