当MPMoviePlayerViewController
在iPad上处于全屏模式时,默认情况下,其控件在叠加层上有上一个和下一个按钮。在我的项目中,我需要捕获该叠加按钮的单击并相应地处理它。由于我还不确定如何调用播放列表,因此没有下一个项目,单击该按钮会在退出全屏模式后中断视图。不知怎的,它只是不知道该做什么,我没有错误。
我想知道的是,是否有办法从fullscreen
下一个和上一个按钮收听/捕捉该事件?
我还尝试使用自己的控件覆盖,以MPMoviePlayer
,MPMoviePlayerController
和MPMoviePlayerViewController
生效,但没有成功。一旦玩家进入fullscreen
模式,任何存在的叠加都将被忽略,并且不随屏幕缩放一起进行。
在fullscreen
模式下是否有可靠的方法来覆盖?我查看了Apple的示例,但这似乎对我在fullscreen
模式下向视图添加任何内容无效。
任何帮助都将不胜感激。
答案 0 :(得分:8)
我没有使用过MPMoviePlayerViewController,但这里有一些基于查看文档的想法。
看起来MPMoviePlayerController有一些可能相关的通知,但我没有看到对“next and previous”的具体引用。他们可能会寻找按钮吗?
使用
注册通知[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerPlaybackStateChanged:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil];
并将此功能添加到您的对象:
-(void)moviePlayerPlaybackStateChanged:(NSNotification *)notification {
MPMoviePlayerController *moviePlayer = notification.object;
MPMoviePlaybackState playbackState = moviePlayer.playbackState;
// ...
}
我怀疑你会发现你正在获得MPMoviePlaybackStateSeekingForward和......那些按钮的SeekingBackward更新。
答案 1 :(得分:2)
这是我偶然发现的另一种可能性。全屏模式下的MPMoviePlayerController可能正在发送远程控制事件。通过在视图控制器中启用远程控制事件消息来捕获这些(仅限iOS 4):
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
然后实施
[UIResponder remoteControlReceivedWithEvent:(UIEvent*)event];
当视图消失时,在viewWillDisappear中取消注册:
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];
我不确定这会起作用,但值得一试。
答案 2 :(得分:0)
Seaamsu Campbell是对的:)使用他的方法我得到了回放控制事件的事件。 看我的问题和答案。
How can I know users click fast forward and fast rewind buttons on the playback controls in iPhone