2013-07-23 3 views
5

私は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の答え>>>

後、私はシームレスmp1mp2を再生するには、以下のようsetNextMediaPlayer()を使用しています。

mp2 = new MediaPlayer(); 
mp2.setDataSource(nextItem.getUri()); 
mp2.setOnCompletionListener(this); 
mp2.prepare(); 
mp1.setNextMediaPlayer(mp2); 

mp2はまだonPreparedListenerは、私が欲しい適切なタイミングで呼び出されることはありませんので、**mp2.prepare();**、その再生の前に準備されることがあります。 setNextMediaPlayerのパラメータとしてmp2mp1に設定する他の方法はありますか?

答えて

3
public void setOnPreparedListener (MediaPlayer.OnPreparedListener listener) 

これはうまくいく可能性があります。

+0

私はVideoView.setOnPreparedListenerを使用して終了しました。これは私の問題をカバーするのに十分でした(再生ボタンのドロウアブルをポーズに変更) – Jay

+0

あなたの素早い応答に感謝します。私はすでに次のMediaPlayerオブジェクトを事前に準備しています。私の追加の質問を見てください。 – Aerok

関連する問題