我實例化了MPMoviePlayerViewController並使用它加載電影。我如何檢測用戶觸摸播放器上的任何位置?如何檢測MPMoviePlayerViewController上的觸摸
我添加了覆蓋,它的工作原理就像那樣。但問題是,現在我沒有控制玩家(音量,暫停等)。有沒有任何通知顯示這個?
我實例化了MPMoviePlayerViewController並使用它加載電影。我如何檢測用戶觸摸播放器上的任何位置?如何檢測MPMoviePlayerViewController上的觸摸
我添加了覆蓋,它的工作原理就像那樣。但問題是,現在我沒有控制玩家(音量,暫停等)。有沒有任何通知顯示這個?
您可以將手勢識別器添加到作爲電影播放器父級的視圖中。
然後你可以添加一個代表到手勢識別器來檢查到底是什麼命中......並丟棄手勢識別器事件,如果它不是媒體播放器。
的代碼可能看起來像:
- (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;
}
所以他們都可以快樂地一起玩。
最好的方法是對MoviePlayerController進行子類化,但是如果您需要處理單擊以解除視圖,那麼f.e.對於一個簡介視頻,我已經做了一個簡單的解決方案... – bontoJR 2010-12-15 10:06:09
但我不想子類化它必須有其他方式...我有疊加視圖,我想隱藏/顯示它當我點擊電影...嘗試像這樣,但沒有運氣..UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(movieTapped :)]; [player.moviePlayer.view addGestureRecognizer:tap]; – 1110 2010-12-15 12:22:33
我更新了問題,請檢查。 – 1110 2010-12-15 15:10:00