videoViewが使用しているmediaPlayerインスタンスへの参照を取得できますか?もしそうなら、どうですか?AndroidのvideoViewのmediaPlayerを取得
videoViewにはmediaPlayerほどのリスナーがないので、mediaPlayerにアクセスして特別な制御とイベント処理を改善したいと考えています。
videoViewが使用しているmediaPlayerインスタンスへの参照を取得できますか?もしそうなら、どうですか?AndroidのvideoViewのmediaPlayerを取得
videoViewにはmediaPlayerほどのリスナーがないので、mediaPlayerにアクセスして特別な制御とイベント処理を改善したいと考えています。
あなたはVideoViewからリスナーを送ることができます。
VideoView mVideoView=new VideoView();
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer pMp) {
//use a global variable to get the object
}
});
代わりにあなただけのメディアプレーヤーのイベントに興味を持っている場合は、これらのいずれかを使用することができ、これらはVideoViewに実装されており、これらは基本的にMediaPlayerのイベントです。
void setOnCompletionListener(MediaPlayer.OnCompletionListener l)
void setOnErrorListener(MediaPlayer.OnErrorListener l)
void setOnInfoListener(MediaPlayer.OnInfoListener l)
void setOnPreparedListener(MediaPlayer.OnPreparedListener l)
これらの機能はすべて、Media Playerインスタンスにも与えられます。
私はこの質問をずっと前に尋ねてきましたが、私が望んでいたことを思い出しました。この状態では、再生ステータスイベント(一時停止、開始、停止、シーク)、エラーイベント、バッファリングステータスなど... mediaPlayerにはそれらのすべてがありますが(どれくらいうまく動作しているかはわかりませんが)、videoViewにはいくつかしかありません。 –
VideoViewのイベント(例:setOnInfoListener(MediaPlayer.OnInfoListener l))はAPIレベル17からのみ使用できます。したがって、APIレベルを下げるためにサポートしたい場合はどうすればよいですか? –
見つかったMediaPlayerオブジェクトのOnInfoListenerを設定できます。 Available> API 3. –
おそらく[反映](http://tutorials.jenkov.com/java-reflection/private-fields-and-methods.html)で行うことができます。 – yorkw
反射があまりにも乱雑で危険です。 videoViewを拡張して代わりにmediaPlayerを取得することは可能ですか? –