私はsetNextMediaPlayer()
メソッドと一緒にgapless再生音楽プレーヤーを作っています。MediaPlayerオブジェクトの再生を検出するにはどうすればよいですか?
setNextMediaPlayer()
は、ギャップレス再生を可能にする素晴らしい方法ですが、次の曲の情報をレイアウトにリフレッシュするのに問題がありました。 setNextMediaPlayer()
メソッドを使用すると、start()
メソッドを使用して再生を開始する必要がないため、再生が正確に開始されたときにキャッチする方法はありません。 また、情報の更新方法をonCompletion
に入れていますが、制限があります。
public void onCompletion(MediaPlayer mp) {
Log.d(TAG, "onCompletion():");
displayInfoSingle(nextItem);//refresh albumart and song info.
}
MediaPlayer
オブジェクトの再生開始時に検出するリスナーはありますか?
を追加しましたタルンVarshneyの答え>>>
後、私はシームレスmp1
隣mp2
を再生するには、以下のようsetNextMediaPlayer()
を使用しています。
mp2 = new MediaPlayer();
mp2.setDataSource(nextItem.getUri());
mp2.setOnCompletionListener(this);
mp2.prepare();
mp1.setNextMediaPlayer(mp2);
mp2
はまだonPreparedListener
は、私が欲しい適切なタイミングで呼び出されることはありませんので、**mp2.prepare();**
、その再生の前に準備されることがあります。 setNextMediaPlayer
のパラメータとしてmp2
をmp1
に設定する他の方法はありますか?
私はVideoView.setOnPreparedListenerを使用して終了しました。これは私の問題をカバーするのに十分でした(再生ボタンのドロウアブルをポーズに変更) – Jay
あなたの素早い応答に感謝します。私はすでに次のMediaPlayerオブジェクトを事前に準備しています。私の追加の質問を見てください。 – Aerok