私は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;
}
。
あなたは2人のレクチャーが戦っているかもしれません。あなたは、ジェスチャー認識器のデリゲートとして自分自身を設定し、実装、<UIGestureRecogniserDelegate>
に準拠して、あなたから親コントローラを認識器を追加することができます。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
だから彼らはすべて楽しく一緒に演奏することができます。
MoviePlayerControllerをサブクラス化するのが最善の方法ですが、ビューを閉じるには1回タップを処理する必要がある場合はf.e.イントロビデオのために、私は単純な解決策を行った... – bontoJR
しかし、私はそれをサブクラス化したくない...他の方法が必要です...私はオーバーレイビューを持っています。ムービー...このようにしようとしましたが、運は無かったのです..UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:自己アクション:@selector(movieTapped :)]; [player.moviePlayer.view addGestureRecognizer:tap]; – 1110
質問が更新されましたので、ご確認ください。 – 1110