2013-07-23 2 views
5

Я работаю с методом setNextMediaPlayer(), чтобы сделать беспроигрышный музыкальный проигрыватель.Как я могу обнаружить, что объект MediaPlayer начинает играть?

setNextMediaPlayer() - отличный способ для бесщелевого воспроизведения, но для меня возникла проблема с обновлением информации о следующей следующей песне в макетах. Когда я использую метод setNextMediaPlayer(), мне не нужно использовать метод start(), чтобы начать воспроизведение, поэтому нет возможности поймать, когда воспроизведение начнется точно. В качестве альтернативы я помещаю свой метод обновления информации в onCompletion, но у него есть предел.

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

Есть ли какой-нибудь прослушиватель для обнаружения, когда MediaPlayer объект начинает воспроизведение?

Добавлено после ответа Tarun Varshney в >>>

Я использую setNextMediaPlayer(), как показано ниже, чтобы играть mp2mp1 рядом с бесшовно.

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

mp2 уже может быть подготовлен до его воспроизведения из **mp2.prepare();** так onPreparedListener будет называться не в нужное время я хочу. Есть ли другой способ установить mp2 как параметр setNextMediaPlayer из mp1?

ответ

3
public void setOnPreparedListener (MediaPlayer.OnPreparedListener listener) 

Это может сработать для вас.

+0

В результате я использовал VideoView.setOnPreparedListener. Этого было достаточно, чтобы покрыть мою проблему (воспроизведение кнопки с возможностью поворота на паузу) – Jay

+0

Спасибо за ваш быстрый ответ. Я уже делаю следующий объект MediaPlayer заранее подготовленным, см. Мой дополнительный вопрос. – Aerok

Смежные вопросы