2013-07-23 9 views
5

Pracuję z metodą setNextMediaPlayer(), aby utworzyć odtwarzacz muzyki bez przerw.Jak mogę wykryć, że obiekt MediaPlayer zaczyna się odtwarzać?

to świetna metoda do odtwarzania bez przerw, ale pojawił się problem z odświeżeniem informacji o nadchodzącej piosence do układów. Kiedy używam metody setNextMediaPlayer(), nie muszę używać metody start(), aby rozpocząć odtwarzanie, więc nie można złapać, gdy odtwarzanie rozpocznie się dokładnie. Alternatywnie, umieszczam moją metodę odświeżania informacji w onCompletion, ale ma ona limit.

public void onCompletion(MediaPlayer mp) { 
    Log.d(TAG, "onCompletion():"); 
    displayInfoSingle(nextItem);//refresh albumart and song info. 
} 

Czy jest jakiś detektor, który wykryje, kiedy obiekt rozpoczyna odtwarzanie od obiektu MediaPlayer?

Dodano po odpowiedź Tarun Varshney za >>>

Używam setNextMediaPlayer() jak poniżej, aby odtworzyć mp2 obok mp1 płynnie.

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

mp2 może już być przygotowane przed jego odtwarzania z powodu **mp2.prepare();** tak onPreparedListener nie zostanie wywołany w odpowiednim momencie chcę. Czy istnieje inny sposób ustawienia mp2 jako parametru setNextMediaPlayer z mp1?

Odpowiedz

3
public void setOnPreparedListener (MediaPlayer.OnPreparedListener listener) 

To może działać dla Ciebie.

+0

Skończyło się na użyciu VideoView.setOnPreparedListener. To wystarczyło, aby objąć mój problem (zmiana suwaka do przeciągnięcia przycisku odtwarzania, aby przerwać) – Jay

+0

Dzięki za szybką odpowiedź. Już przygotowałem kolejny obiekt MediaPlayer z wyprzedzeniem, zobacz moje dodatkowe pytanie. – Aerok

Powiązane problemy