iPad SDK:如何挂钩 MPMoviePlayerViewController 的完成按钮?
Posted
技术标签:
【中文标题】iPad SDK:如何挂钩 MPMoviePlayerViewController 的完成按钮?【英文标题】:iPad SDK: How to hook into done button of MPMoviePlayerViewController? 【发布时间】:2010-07-24 20:11:54 【问题描述】:我正在创建一个 iPad 添加并且我正在使用 MPMoviePlayerViewController 来播放视频。
视频就这样占据了整个 iPad 屏幕。
playerViewController.view.frame = self.view.frame;
我需要一种方法让用户能够按下按钮转到不同的屏幕。
我注意到当我创建 MPMoviePlayerViewController 时,导航控制器中会自动出现一个完成按钮。
我的问题:
a.) 是否有任何方法可以连接到现有的完成按钮?基本上我只想关闭视图控制器。
b.) 如果那行不通。如何添加自己的自定义按钮?正如我上面提到的,MPMoviePlayerViewController 占据了整个屏幕。我的一个想法是在框架中创建 MPMoviePlayerViewController 并留出一点垂直空间,以便我可以添加自己的工具栏。
我更喜欢关于如何实施 a.) 的建议?
如果这是不可能的,也许有一些关于如何通过按下按钮来关闭 MPMoviePlayerViewController 的建议?
感谢所有帮助。
【问题讨论】:
请查看我的回复:***.com/a/29516352/1728118 【参考方案1】:来自文档:
“完成”按钮会在播放器退出全屏模式时暂停电影播放。如果您想在代码中检测到这种情况,您应该监控其他通知,例如
MPMoviePlayerDidExitFullscreenNotification
。
因此,请尝试观察此通知:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayerDidExitFullscreen:)
name:MPMoviePlayerDidExitFullscreenNotification
object:nil];
后来:
- (void)moviePlayerDidExitFullscreen:(NSNotification *)theNotification
// do whatever you need to...
编辑:我想我误读了你的问题。你要的是方法-dismissMoviePlayerViewControllerAnimated
我假设您使用-presentMoviePlayerViewControllerAnimated:
来展示它?您可以使用moviePlayer.navigationItem.rightBarButtonItem
(或向左,或其他)添加一个按钮。将此按钮的目标设置为您的视图控制器,并拦截该操作以调用 -dismiss..
。
【讨论】:
我真的只需要一种方法来允许用户关闭 ViewController。其实我只想:[selfdismissModalViewControllerAnimated:YES];我尝试注册 MPMoviePlayerDidExitFullscreenNotification ,它工作正常,但没有达到预期的效果。想法? 我尝试添加一个按钮,然后分配给 mp.navigationitem.rightBarButtonItem 但它没有出现。有没有人有这个工作的例子? 有人找到解决方案了吗?到处都在谷歌搜索...我如何才能听到模态视图因扩展控制器和覆盖 dissmiss 方法而被关闭? 当控件样式设置为 MPMovieControlStyleFullscreen 时,完成按钮不会触发 MPMoviePlayerDidExitFullscreenNotification 通知。 @MaxMacLeod 当控制样式设置为 MPMovieControlStyleFullscreen 时,我们可以得到通知点击完成按钮的任何方式【参考方案2】:您好,可以使用 jbandes 所说的来完成
[[NSNotificationCenter defaultCenter] addObserver:self selector: @selector(playbackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:theMoviePlayer.moviePlayer];
【讨论】:
当电影完成播放而无需按下完成按钮时也会调用它 @Max MacLeod 用户 presentMoviePlayerViewControllerAnimated 然后将引发 MPMoviePlayerDidExitFullscreenNotification。 太棒了!当按下完成按钮时,这也适用于MPMoviePlayerViewController
。 MPMoviePlayerWillExitFullscreenNotification
没有在那里开火。以上是关于iPad SDK:如何挂钩 MPMoviePlayerViewController 的完成按钮?的主要内容,如果未能解决你的问题,请参考以下文章
iPhone SDK:如何使 3hg 应用程序与 iPad 兼容?
如何使用 iphone sdk 在 ipAd 控制器中发布我们自己的 iphone 应用程序广告?