从 MPMoviePlayerController 标准控件中删除/隐藏全屏按钮
Posted
技术标签:
【中文标题】从 MPMoviePlayerController 标准控件中删除/隐藏全屏按钮【英文标题】:Remove/hide Full screen button from MPMoviePlayerController Standard Controls 【发布时间】:2012-12-13 08:35:22 【问题描述】:我想从MPMoviePlayerController
标准控件中删除/隐藏全屏按钮,因为全屏模式会产生很多问题,而且不是我的应用程序的要求。我只想要 @987654322 @,stop
,forward
,reverse
controls
。有人可以帮帮我吗?
【问题讨论】:
【参考方案1】:没有标准的方法来做到这一点。这是您的选择。
您可以将MPMoviePlayerController's
controlStyle 设置为 None 并创建您自己的自定义控件。缺点:这是很多工作。
您可以使用NSNotificationCenter
拦截MPMoviePlayerWillEnterFullscreenNotification
并立即将全屏模式设置为NO。缺点:基于用户的ios版本,这可能会导致闪烁或一些故障效果。
您可以浏览MPMoviePlayerController
视图的子视图,直到进入包含控件、slider
和play/pause button
以及全屏按钮的MPInlineTransportControls
视图,以及全屏按钮,它们都是MPTransportButton
类。找到那个,您可以将其隐藏或从其超级视图中删除。缺点:截至目前,它通过了应用商店的评论,并且在所有当前支持的iOS
版本上都能完美运行。但这可能随时改变。如果 Apple 决定重做他们的默认视频播放器,您最终可能会得到无法正常工作的代码。
【讨论】:
在 iOS 6 中找不到 MPInlineTransportControls 视图。 这个答案非常有帮助,如果您使用的是NSNotificationCenter
方法,那就有点错误了。你应该听MPMoviePlayerDidEnterFullscreenNotification
而不是MPMoviePlayerWillEnterFullscreenNotification
。如果您收听Will
而不是Did
,您将在将fullscreen
属性设置为NO
之前将其设置为YES
,并且该方法将不起作用。我还发现了一个错误,即在您拨打setFullScreen:NO
后视频消失但继续播放。为了防止这种情况,我在setFullScreen
方法之后调用了[video pause];
,然后调用了[video play]
。
通过迭代所有 MPMoviePlayerController 子视图 ***.com/a/27482687/928599以上是关于从 MPMoviePlayerController 标准控件中删除/隐藏全屏按钮的主要内容,如果未能解决你的问题,请参考以下文章
当应用程序从后台进入前台时,MPMoviePlayerController 黑屏
MPMoviePlayerController:无法从全屏切换到嵌入式
MPMoviePlayerController 从流式视频中获取缩略图?
从 MPMoviePlayerController 标准控件中删除/隐藏全屏按钮