如何检测MPMoviePlayerViewController上的触摸

问题描述:

我实例化了MPMoviePlayerViewController并使用它加载电影。我如何检测用户触摸播放器上的任何位置?如何检测MPMoviePlayerViewController上的触摸

我添加了覆盖,它的工作原理就像那样。但问题是,现在我没有控制玩家(音量,暂停等)。有没有任何通知显示这个?

+0

最好的方法是对MoviePlayerController进行子类化,但是如果您需要处理单击以解除视图,那么f.e.对于一个简介视频,我已经做了一个简单的解决方案... – bontoJR 2010-12-15 10:06:09

+0

但我不想子类化它必须有其他方式...我有叠加视图,我想隐藏/显示它当我点击电影...尝试像这样,但没有运气..UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(movieTapped :)]; [player.movi​​ePlayer.view addGestureRecognizer:tap]; – 1110 2010-12-15 12:22:33

+0

我更新了问题,请检查。 – 1110 2010-12-15 15:10:00

您可以将手势识别器添加到作为电影播放器​​父级的视图中。

然后你可以添加一个代表到手势识别器来检查到底是什么命中......并丢弃手势识别器事件,如果它不是媒体播放器。

的代码可能看起来像:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 
    UIView *treffer = [app.window hitTest:[touch locationInView:app.window] withEvent:nil]; 

    if (treffer == yourvideoplayerview) return YES; 
    return NO; 
} 

另一种简单的选择是把一只看不见的大按钮,将在影片播放器视图。

你可能会有两个识别器打架。你可以从你父控制器添加一个识别器,符合<UIGestureRecogniserDelegate>,为自己设定为手势识别器的委托和实施:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
{ 
    return YES; 
} 

所以他们都可以快乐地一起玩。