当用户尝试全屏播放时,MPMoviePlayerController 停止并重置电影 [iOS]

Posted

技术标签:

【中文标题】当用户尝试全屏播放时,MPMoviePlayerController 停止并重置电影 [iOS]【英文标题】:MPMoviePlayerController stops and resets the movie when user tries to play fullscreen [iOS] 【发布时间】:2011-10-20 15:43:22 【问题描述】:

我在邮件视图中嵌入了 MPMoviePlayerController。我可以播放/暂停电影并向前/向后搜索。但是当我触摸“全屏按钮”时,电影停止并且播放状态设置为 MPMoviePlaybackStateStopped... 电影应该全屏播放吗?

这是我的代码:

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:videoUrl];

player.shouldAutoplay = NO;
player.movieSourceType = MPMovieSourceTypeFile;
player.controlStyle = MPMovieControlStyleEmbedded;
player.allowsAirPlay = YES;

player.view.frame = CGRectMake(xPos, yPos, width, height);

[self.view addSubview:player.view];

【问题讨论】:

【参考方案1】:

我发现了我的错误:在 MPMoviePlayerController 的视图中按下全屏切换按钮时,会调用方法“viewWillLayoutSubviews”。我永远无法想象这种行为......

希望我的经验对其他开发者有用。

【讨论】:

您究竟需要做什么来解决这个问题?我有一个非常直接的 MPMoviePlayerViewController 实现,当我单击全屏按钮时,它会进入全屏但视频停止播放并挂在加载屏幕中......【参考方案2】:

请记住,当 MPMoviePlayerController 全屏显示时,任何包含 ViewController 的 viewWillDisappear 和 viewDidDisappear 方法都会被调用。此外,viewWillAppear 和 viewWillDisappear 在从全屏返回时会被调用。

如果您有任何影响视频播放行为的逻辑,它将被调用,除非您使用一些条件逻辑来查看视频是否仍在播放。

【讨论】:

以上是关于当用户尝试全屏播放时,MPMoviePlayerController 停止并重置电影 [iOS]的主要内容,如果未能解决你的问题,请参考以下文章

Youtube 视频播放器全屏点击事件

检测在移动设备上离开全屏 iframe

当用户选择要播放的新视频时关闭画中画视频

强制 iOS iPhone youtube 嵌入播放器退出全屏

画中画和全屏 - API 只能由用户手势启动

UIWebView 和 MPMoviePlayerController