es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  ,

Answer

  1. Avatar for 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 el MediaLibraryService.

    Para solucionar este problema, puedes intentar los siguientes pasos:

    1. Verifica el código del método MediaControler.skipToNextPlaylistItem() y asegúrate de que sea correcto y de que no se esté llamando múltiples veces o en circunstancias incorrectas.
    2. 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.

    3. Depura los métodos onCommandRequest y onCurrentMediaItemChanged en las clases MusicSessionCallback y MusicPlayerCallback para ver si hay algún comportamiento inesperado.

    4. 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.

    5. 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.

Comments are closed.