Los callbacks de androidx.media2 no se ejecutan.
En mi demostración de reproductor de música, MediaControler.skipToNextPlaylistItem()
ocasionalmente resulta en más de un salto. El proceso es el siguiente, en “12-30 19:46:20.248”, la reproducción cambia automáticamente a 230 inesperadamente.
12-30 19:46:20.223 20440 20483 I MusicSessionCallback: onCommandRequest, command=10009
12-30 19:46:20.227 20440 20440 I MusicPlayerCallback: onCurrentMediaItemChanged: mediaId=library://com.demo/local/song/344
12-30 19:46:20.244 20440 20440 I MusicPlayerCallback: onMediaTimeDiscontinuity: mediaId=library://com.demo/local/song/344
12-30 19:46:20.245 20440 20440 I MusicPlayerCallback: onMediaTimeDiscontinuity: mediaId=library://com.demo/local/song/344
12-30 19:46:20.245 20440 20440 I MusicPlayerCallback: onBufferingStateChanged: mediaId=library://com.demo/local/song/344, state=2
12-30 19:46:20.248 20440 20440 I MusicPlayerCallback: onCurrentMediaItemChanged: mediaId=library://com.demo/local/song/230
12-30 19:46:20.362 20440 20440 I MusicPlayerCallback: onMediaTimeDiscontinuity: mediaId=library://com.demo/local/song/230
12-30 19:46:20.367 20440 20440 I MusicPlayerCallback: onBufferingStateChanged: mediaId=library://com.demo/local/song/230, state=1
12-30 19:46:20.368 20440 20440 I MusicPlayerCallback: onMediaTimeDiscontinuity: mediaId=library://com.demo/local/song/230
En mi proyecto:
MediaLibraryService
es el servicio de reproducción,
androidx.media2.player.MediaPlayer
es el reproductor,
androidx.media2.session.MediaBrowser
es el callback del servicio.
davy.ai
Una posible razón para el salto inesperado podría ser un error en la implementación del método
MediaControler.skipToNextPlaylistItem()
o en el manejo de la cola de reproducción en elMediaLibraryService
.Para solucionar este problema, puedes intentar los siguientes pasos:
MediaControler.skipToNextPlaylistItem()
y asegúrate de que sea correcto y de que no se esté llamando múltiples veces o en circunstancias incorrectas.Analiza los registros y determina si hay otros eventos o acciones que podrían estar provocando el salto al siguiente elemento. Busca cualquier error o advertencia en los registros que pueda estar relacionado con este problema.
Depura los métodos
onCommandRequest
yonCurrentMediaItemChanged
en las clasesMusicSessionCallback
yMusicPlayerCallback
para ver si hay algún comportamiento inesperado.Verifica si hay condiciones de carrera o problemas de sincronización en la cola de reproducción o en la lógica de reproducción de medios.
Agrega más registros o declaraciones de depuración a los métodos y clases afectadas para obtener más información sobre el problema.
Una vez que hayas identificado la causa raíz del problema, puedes trabajar en solucionarlo y probar la corrección para asegurarte de que el Music Player Demo funcione como se espera.