【发布时间】:2026-01-04 10:00:01
【问题描述】:
我想从MPMoviePlayerController 标准控件中删除/隐藏全屏按钮,因为全屏模式会产生很多问题,而且不是我的应用程序的要求。我只想要 @987654322 @,stop,forward,reversecontrols。有人可以帮帮我吗?
【问题讨论】:
标签: ios mpmovieplayercontroller
我想从MPMoviePlayerController 标准控件中删除/隐藏全屏按钮,因为全屏模式会产生很多问题,而且不是我的应用程序的要求。我只想要 @987654322 @,stop,forward,reversecontrols。有人可以帮帮我吗?
【问题讨论】:
标签: ios mpmovieplayercontroller
没有标准的方法来做到这一点。这是您的选择。
您可以将MPMoviePlayerController's controlStyle 设置为 None 并创建您自己的自定义控件。缺点:这是很多工作。
您可以使用NSNotificationCenter 拦截MPMoviePlayerWillEnterFullscreenNotification 并立即将全屏模式设置为NO。缺点:基于用户的iOS版本,这可能会导致闪烁或一些故障效果。
您可以浏览MPMoviePlayerController 视图的子视图,直到进入包含控件、slider 和play/pause button 以及全屏按钮的MPInlineTransportControls 视图,以及全屏按钮,它们都是MPTransportButton 类。找到那个,您可以将其隐藏或从其超级视图中删除。缺点:截至目前,它通过了应用商店的评论,并且在所有当前支持的iOS 版本上都能完美运行。但这可能随时改变。如果 Apple 决定重做他们的默认视频播放器,您最终可能会得到无法正常工作的代码。
【讨论】:
NSNotificationCenter 方法,那就有点错误了。你应该听MPMoviePlayerDidEnterFullscreenNotification 而不是MPMoviePlayerWillEnterFullscreenNotification。如果您收听Will 而不是Did,您将在将fullscreen 属性设置为NO 之前将其设置为YES,并且该方法将不起作用。我还发现了一个错误,即在您拨打setFullScreen:NO 后视频消失但继续播放。为了防止这种情况,我在setFullScreen 方法之后调用了[video pause];,然后调用了[video play]。