MPMoviePlayerController - 检测并区分上一个/下一个按钮

时间:2016-01-13 05:47:53

标签: ios mpmovieplayercontroller mpmovieplayer

我已经通过以下代码检测到了上一个/下一个按钮的点击,但仍然没有找到区分两次点击的方法。

@implementation MyMovieController:MPMoviePlayerController

[[NSNotificationCenter defaultCenter]
     addObserver:self selector:@selector(movieChangeCallBack:)
     name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil];

并定义 - (void)movieChangeCallBack:(NSNotification *)aNotification

- (void)movieChangeCallBack:(NSNotification*) aNotification {

    if (self.playbackState == MPMoviePlaybackStateStopped)
    {
        //Touched 'Previous' or 'Next' button.
    }
}

有没有办法判断之前的'或者' next'单击按钮? 谢谢:))

2 个答案:

答案 0 :(得分:1)

不幸的是,默认情况下,MPMoviePlayerController会在点击上一个或下一个时触发MPMoviePlayerPlaybackStateDidChangeNotification。没有办法唯一地通知每个人是否被点击。

我找到的唯一方法是为向后和向前创建自己的自定义控件,为其添加目标以执行操作:

[prevBtn addTarget:self action:@selector(onClick:) 
forControlEvents:UIControlEventTouchUpInside];

[nextBtn addTarget:self action:@selector(onClick:) 
forControlEvents:UIControlEventTouchUpInside];

然后在您的onClick方法中:

 (void)onClick:(UIButton*)sender
 {
     if (sender == prevBtn)
     {
        // Do whatever when prevBtn is tapped
     }
     else if (sender == nextBtn)
     {
        // Do whatever when nextBtn is tapped
     }    
 }

仅供参考:您必须将玩家的controlStyle属性设置为MPMovieControlStyleNon才能隐藏默认控件。

答案 1 :(得分:0)

不推荐使用MPMoviePlayerController / MPMoviePlayerPlaybackStateDidChangeNotification NS_DEPRECATED_IOS(3_2,9_0)。你应该切换到AVPlayer。