Я работаю с методом 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()
, как показано ниже, чтобы играть mp2
mp1
рядом с бесшовно.
mp2 = new MediaPlayer();
mp2.setDataSource(nextItem.getUri());
mp2.setOnCompletionListener(this);
mp2.prepare();
mp1.setNextMediaPlayer(mp2);
mp2
уже может быть подготовлен до его воспроизведения из **mp2.prepare();**
так onPreparedListener
будет называться не в нужное время я хочу. Есть ли другой способ установить mp2
как параметр setNextMediaPlayer
из mp1
?
В результате я использовал VideoView.setOnPreparedListener. Этого было достаточно, чтобы покрыть мою проблему (воспроизведение кнопки с возможностью поворота на паузу) – Jay
Спасибо за ваш быстрый ответ. Я уже делаю следующий объект MediaPlayer заранее подготовленным, см. Мой дополнительный вопрос. – Aerok