Las apps de contenido multimedia que interactúan por voz con el Asistente de Google en teléfonos, vehículos, TVs y auriculares Android usan las APIs de sesión multimedia de Android y las acciones de contenido multimedia. El ciclo de vida de las acciones de contenido multimedia puede ser difícil de seguir. Incluso una solicitud simple de reproducción desde la búsqueda tiene muchos pasos intermedios en los que algo podría salir mal, como se muestra en la siguiente línea de tiempo simplificada:
La app de prueba del controlador multimedia (MCT) te permite probar las particularidades de la reproducción de contenido multimedia en Android y controlar 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 la
MediaControllerCompatheredada. Esto permite probar tu app de sesión multimedia compilada sobre unMediaSessionCompatheredado o elMediaSessionde Media3 cuando una app externa accede a ella a través de unMediaControllerCompatheredado. Encuentra el código fuente de la versión heredada en GitHub. - La app cliente se implementa sobre la versión más reciente de Media3
MediaController. Esto permite probar tu app de sesión multimedia compilada sobre unMediaSessionCompatheredado o elMediaSessionde Media3 cuando una app externa accede a ella a través de unMediaControllerde Media3. Busca el código fuente de la versión de Media3 en GitHub.
La 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 tus pruebas de QA.
Para usar la MCT, tu app debe tener un servicio de navegador multimedia y debes permitir que la MCT se conecte a él. Consulta Cómo crear servicios para el navegador multimedia para obtener más información.
Cómo iniciar la MCT
Cuando inicies MCT, verás dos listas:
- Active MediaSessions: Esta lista está vacía inicialmente cuando inicias la MCT y verás el mensaje "No se encontraron apps de contenido multimedia. Se requiere el permiso de objeto de escucha de notificaciones para buscar sesiones de contenido multimedia activas". Haz clic en Configuración para ir a la pantalla de permisos y habilitar el permiso para la 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 la MCT si configuraste tu app para que acepte todas las conexiones o si agregaste la MCT a la lista de entidades permitidas. Consulta Cómo controlar 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 conectara al servicio de navegador multimedia de tu app, esta aparecerá en la lista de implementaciones de la lista de servicios de navegador multimedia. Búscala allí y haz clic en Control para iniciar la app 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 de preparación y juego
Cuando la MCT comienza a controlar tu app, muestra los metadatos de la sesión actual de la app: el contenido multimedia seleccionado y las acciones que la sesión está preparada para controlar.
La parte superior de la página de controles de MCT contiene un menú desplegable en el que puedes seleccionar Search, URI, Media ID o None, 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 justo 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 se comporte correctamente 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 la MCT incluye un botón que solicita y libera el foco de audio.
Para probar el foco de audio, sigue estos pasos:
- Usa el menú desplegable Audio Focus para seleccionar una de las tres sugerencias de duración:
AUDIOFOCUS_GAIN,AUDIOFOCUS_GAIN_TRANSIENToAUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK. - Presiona el botón para solicitar el enfoque.
- Vuelve a presionar el botón para liberar el enfoque.
Prueba los controles de transporte
Desliza el dedo hacia la izquierda para mostrar la vista de la IU de MCT. Esta vista tiene los botones de transporte del controlador de contenido multimedia estándar y muestra la imagen y los datos del programa de la sesión. Los botones de transporte que están inhabilitados se encierran en un círculo 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 según lo esperado. Por ejemplo, cuando presionas el botón REPRODUCIR, este debería inhabilitarse, y los botones PAUSAR y DETENER deberían habilitarse.
Vuelve a deslizar el dedo hacia la izquierda para ver las acciones opcionales. Cada acción tiene un control que muestra si está activa o no. Si está activo, puedes realizar la acción haciendo clic en él.
Si te conectaste desde la lista de apps que tienen un servicio de navegador de contenido multimedia, puedes deslizar el dedo hacia la izquierda dos veces más para ver las vistas que te permiten subir y bajar por la jerarquía de contenido de tu app o buscar en el árbol de contenido.
Cómo probar manualmente una app de video
Usa el modo de pantalla dividida para probar los controladores de apps de video. Primero, abre la app de video en una ventana y, luego, abre la MCT en el modo de pantalla dividida.
Ejecuta pruebas de verificación
El framework de pruebas de verificación ofrece pruebas de un clic que puedes ejecutar para asegurarte de que tu app multimedia responda correctamente a una solicitud de reproducción.
Prueba una app de teléfono
Para acceder a las pruebas de verificación, haz clic en el botón Test junto a tu app multimedia.
Estado de MCT
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 los registros analizables
y con formato. El botón de la derecha actualiza la vista para mostrar la información más reciente.
Selecciona una prueba
Si deslizas el dedo hacia la izquierda, llegarás a la vista de pruebas de verificación, en la que podrás 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.
La 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
- Reproducir desde el ID de contenido multimedia
- Reproducir desde el URI
- Pausar
- Detener
- Ir al siguiente
- Ir al anterior
- Ir al elemento de la fila
- Saltar a
Resultados de la prueba
El área de resultados en la parte inferior de la vista está vacía inicialmente. Mostrará 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 la MCT en Android TV, ves una lista de las apps de contenido multimedia instaladas. Ten en cuenta que una app solo aparecerá en esta lista si implementa un servicio de navegador de contenido multimedia.
Si seleccionas una app, se te dirigirá a la pantalla de pruebas, que muestra una lista de pruebas de verificación a la derecha.
Cuando ejecutas una prueba, en el lado izquierdo de la pantalla, se muestra información sobre el MediaController seleccionado. Para obtener más detalles, consulta los registros de MCT en Logcat.
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. Presiona Intro para ejecutar la prueba.
Para facilitar la entrada de texto, también puedes usar un comando de adb:
adb shell input text your-query
Puedes usar "%s" para agregar un espacio entre las 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 aprender a compilar pruebas nuevas, visita la wiki de MCT en GitHub y consulta las instrucciones de las pruebas de verificación.
Para obtener más información, consulta las instrucciones de contribución.
Recursos adicionales
La MCT se diseñó para usarse junto con apps que implementan APIs de contenido multimedia. Consulta el Universal Android Music Player para ver un ejemplo de este tipo de app.
Las correcciones de errores y las mejoras siempre son bienvenidas. Consulta las instrucciones de contribución.