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
?
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
Dzięki za szybką odpowiedź. Już przygotowałem kolejny obiekt MediaPlayer z wyprzedzeniem, zobacz moje dodatkowe pytanie. – Aerok