Cómo usar la app de prueba del control multimedia

Las apps de contenido multimedia que interactúan por voz con Asistente de Google en teléfonos, automóviles, TVs y auriculares Android se basan en las APIs de sesión multimedia de Android y usan acciones multimedia. El ciclo de vida de las acciones multimedia puede ser difícil de seguir. Incluso una reproducción simple desde la solicitud de búsqueda tiene muchos pasos intermedios en los que podría ocurrir un error, como se muestra en el cronograma simplificado:

Ciclo de vida de la acción multimedia

Figura 1: Ciclo de vida de la acción multimedia

La app de prueba del controlador multimedia (MCT) te permite probar las particularidades de la reproducción de contenido multimedia en Android y verificar la implementación de tu sesión multimedia.

La app de prueba del controlador multimedia está disponible en dos versiones:

  • La app cliente se implementa sobre el MediaControllerCompat heredado. Esto permite probar tu app de sesión multimedia compilada sobre un MediaSessionCompat heredado o el MediaSession de Media3 cuando una app externa accede a ella a través de un MediaControllerCompat heredado. Busca el código fuente de la versión heredada en GitHub.
  • La app cliente se implementa sobre el MediaController Media3 más reciente. Esto permite probar tu app de sesión multimedia compilada sobre un MediaSessionCompat heredado o el MediaSession de Media3 cuando una app externa accede a él a través de un MediaController de Media3. Encuentra el código fuente de la versión Media3 en GitHub.

El MCT muestra información sobre el MediaController de tu app, como su PlaybackState y sus metadatos, y se puede usar para probar los controles multimedia entre apps. El MCT también incluye un framework de pruebas de verificación que te permite automatizar las pruebas de QA.

Para usar el MCT, tu app debe tener un servicio de navegador multimedia y debes permitir que el MCT se conecte a él. Para obtener más información, consulta Cómo compilar un servicio de navegador multimedia.

Cómo iniciar el MCT

La página de lanzamiento de MCT
Figura 2: La página de lanzamiento de MCT

Cuando inicies MCT, verás dos listas:

  • Active MediaSessions: Esta lista está vacía inicialmente cuando inicias el MCT y verás el mensaje "No se encontraron apps de música ". Se requiere el permiso de objeto de escucha de notificaciones para buscar sesiones multimedia activas". Haz clic en Configuración para ir a la pantalla de permisos y habilitar el permiso para el MCT.
  • Implementaciones de MediaBrowserService: En esta lista, se muestran las apps que implementaron un servicio de navegador multimedia. Si implementaste un servicio de navegador de contenido multimedia, tu app aparecerá en esta lista, pero solo podrás usar el MCT si configuraste tu app para que acepte todas las conexiones o si agregaste el MCT a la lista de entidades permitidas. Consulta Controla las conexiones de clientes con onGetRoot() para obtener más información.

Cómo probar manualmente una app para teléfonos

Si permitiste que el MCT se conecte al servicio de navegador multimedia de tu app, esta aparecerá en la lista de implementaciones de la lista de servicios de navegador multimedia. Busca la app allí y haz clic en Control para iniciarla en segundo plano.

De lo contrario, primero debes iniciar la app en segundo plano y, luego, hacer clic en Control cuando aparezca en la lista de sesiones multimedia activas.

Prueba, prepara y juega

Cuando el MCT comienza a controlar tu app, muestra los metadatos de la sesión actual de la app: el contenido multimedia seleccionado actualmente y las acciones que la sesión está preparada para controlar.

La página de control
Figura 3: La página Control

La parte superior de la página de controles de MCT contiene un menú desplegable en el que puedes seleccionar Búsqueda, URI, ID de contenido multimedia o Ninguno, junto con un campo de texto para especificar los datos de entrada asociados con la búsqueda, el URI o el ID de contenido multimedia si seleccionas una de esas opciones.

Los botones Prepare y Play que se encuentran debajo del campo de texto realizan las llamadas adecuadas (onPrepare(), onPrepareFromSearch(), onPrepareFromUri(), onPrepareFromMediaId(), onPlay(), onPlayFromSearch(), onPlayFromUri(), onPlayFromMediaId()) según la acción que hayas seleccionado.

Cómo probar el foco de audio

Una app de contenido multimedia que tenga un buen comportamiento debería poder controlar el foco de audio. Para probar el foco de audio, ejecuta otra app de audio junto con la tuya. La página de controles de MCT incluye un botón que solicita y libera el foco de audio.

Para probar el enfoque de audio, sigue estos pasos:

  1. Usa el menú desplegable Enfoque de audio para seleccionar una de las tres sugerencias de duración AUDIOFOCUS_GAIN, AUDIOFOCUS_GAIN_TRANSIENT o AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK.
  2. Presiona el botón para solicitar el enfoque.
  3. Vuelve a presionar el botón para liberar el enfoque.

Prueba los controles de transporte

Prueba de controles de transporte
Figura 4: Prueba de controles de transporte

Desliza el dedo hacia la izquierda para mostrar la vista de la IU del MCT. Esta vista tiene los botones de transporte estándar del controlador de contenido multimedia y muestra la imagen y los datos del programa de la sesión. Los botones de transporte que están inhabilitados aparecen rodeados de naranja. Todas las demás están activas.

Prueba el reproductor con los botones de transporte. El estado de los botones de transporte debería cambiar como se espera. Por ejemplo, cuando presionas el botón PLAY, este debería inhabilitarse, y los botones PAUSE y STOP deberían habilitarse.

Vuelve a deslizar el dedo hacia la izquierda para ver una vista que muestra acciones opcionales. Cada acción tiene un control que muestra si está activa o no. Si está activa, puedes hacer clic en ella para realizar la acción.

Si te conectaste desde la lista de apps que tienen un servicio de navegador multimedia, puedes deslizar el dedo hacia la izquierda dos veces más para ver vistas que te permitan desplazarte hacia arriba y abajo en la jerarquía de contenido de tu app, o bien buscar en el árbol de contenido.

Cómo probar manualmente una app de video

Usa el modo de pantalla dividida para probar los controles de apps de video. Primero, abre la app de video en una ventana y, luego, abre el MCT en el modo de pantalla dividida.

Ejecuta pruebas de verificación

El framework de pruebas de verificación ofrece pruebas con un clic que puedes ejecutar para asegurarte de que tu app multimedia responda correctamente a una solicitud de reproducción.

Cómo probar una app para teléfonos

El botón de prueba
Figura 5: El botón de prueba

Para acceder a las pruebas de verificación, haz clic en el botón Probar junto a tu app de música.

Estado de MCT

Estado del control multimedia
Figura 6: El estado del control multimedia

En la siguiente vista, se muestra información detallada sobre el MediaController del MCT, por ejemplo, el PlaybackState, los metadatos y la cola. Hay dos botones en la parte superior derecha de la barra de herramientas. El botón de la izquierda alterna entre registros analizables y con formato. El botón de la derecha actualiza la vista para mostrar la información más reciente.

Cómo seleccionar una prueba

La página de selección de pruebas
Figura 7: La página de selección de pruebas

Si deslizas el dedo hacia la izquierda, llegarás a la vista de pruebas de verificación, en la que puedes ver una lista desplazable de las pruebas disponibles. Si una prueba usa una consulta, como la prueba de reproducción desde la búsqueda que se muestra en la Figura 7, hay un campo de texto para ingresar la cadena de consulta.

El MCT incluye pruebas para las siguientes acciones de contenido multimedia, y se agregan más pruebas al proyecto de forma continua:

  • Reproducir
  • Reproducir desde la Búsqueda
  • ID de Play From Media
  • URI de reproducción
  • Pausar
  • Detener
  • Ir al siguiente
  • Ir al anterior
  • Saltar al elemento de la fila
  • Saltar a

Resultados de la prueba

Resultado exitoso de la prueba
Figura 8: Resultado exitoso de la prueba

Inicialmente, el área de resultados en la parte inferior de la vista está vacía. Se mostrarán los resultados cuando ejecutes una prueba. Por ejemplo, para ejecutar la prueba de reproducción desde la búsqueda, ingresa una búsqueda en el campo de texto y haz clic en Run Test. En la siguiente captura de pantalla, se muestra un resultado de prueba exitoso.

Cómo probar una app para Android TV

Cuando inicias el MCT en Android TV, verás una lista de las apps multimedia instaladas. Ten en cuenta que una app solo aparecerá en esta lista si implementa un servicio de navegador de contenido multimedia.

La página de lanzamiento de MCT en la TV

Figura 9: La página de lanzamiento de MCT en la TV

Si seleccionas una app, se te dirigirá a la pantalla de pruebas, que muestra una lista de pruebas de verificación a la derecha.

Página de pruebas de verificación en la TV

Figura 10: La página Pruebas de verificación en la TV

Cuando ejecutas una prueba, el lado izquierdo de la pantalla muestra información sobre el MediaController seleccionado. Para obtener más detalles, consulta los registros de MCT en Logcat.

La página de información de la prueba en la TV

Figura 11: La página de información de la prueba en la TV

Las pruebas que requieren una consulta se marcan con un ícono de teclado. Si haces clic en una de estas pruebas, se abrirá un campo de entrada para la consulta. Haz clic en Intro para ejecutar la prueba.

Para facilitar la entrada de texto, también puedes usar un comando adb:

adb shell input text your-query

Puedes usar "%s" para agregar un espacio entre palabras. Por ejemplo, el siguiente comando agrega el texto "hello world" al campo de entrada.

adb shell input text hello%sworld

Cómo compilar una prueba

Puedes enviar una solicitud de extracción con más pruebas que consideres útiles. Para obtener información sobre cómo compilar pruebas nuevas, visita la Wiki de GitHub de MCT y consulta las instrucciones de la prueba de verificación.

Revisa las instrucciones para realizar contribuciones.

Recursos adicionales

El MCT está diseñado para usarse junto con apps que implementan APIs de contenido multimedia. Consulta el Universal Android Music Player para ver un ejemplo de una app de este tipo.

Las correcciones de errores y las mejoras son siempre bienvenidas. Consulta las instrucciones de contribución.