Las apps de música que interactúan con el Asistente de Google por voz en teléfonos, automóviles, TVs y auriculares Android cuentan con la tecnología de las APIs de sesiones multimedia de Android y usan acciones multimedia. El ciclo de vida de las acciones multimedia puede ser difícil de seguir. Incluso una simple reproducción desde la solicitud de búsqueda tiene muchos pasos intermedios en los que algo podría salir mal, como se muestra en el cronograma simplificado:
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.
El MCT muestra información sobre la MediaController
de tu app, como su PlaybackState
y 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 control de calidad.
Para usar el MCT, tu app debe tener un servicio de navegador multimedia y debes permitir que el MCT se conecte a él. Consulta Cómo compilar un servicio de navegador multimedia para obtener más información.
Cómo iniciar el MCT
Cuando inicies el MCT, verás dos listas:
- Active MediaSessions: Al principio, esta lista está vacía cuando inicias el MCT y verás el mensaje "No media apps found. Se requiere el permiso del objeto de escucha de notificaciones para buscar sesiones multimedia activas. Haz clic en Settings a fin de ir a la pantalla de permisos y habilita 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 multimedia, tu app aparecerá en esta lista, pero solo puedes usar el MCT si la configuraste para que acepte todas las conexiones o si agregaste el 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 conecte al servicio de navegador multimedia de tu app, esta aparecerá en la lista de implementaciones de la lista de servicios de navegador multimedia. Encuéntrala allí y haz clic en Control para iniciar la app en segundo plano.
De lo contrario, primero debes iniciar tu app en segundo plano y, luego, hacer clic en Control cuando aparezca en la lista de sesiones multimedia activas.
Prueba, prepárate 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 para las que la sesión está preparada.
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 medios si seleccionas una de esas opciones.
Los botones Preparar y Reproducir que se encuentran debajo del campo de texto realizan las llamadas correspondientes (onPrepare()
, onPrepareFromSearch()
, onPrepareFromUri()
, onPrepareFromMediaId()
, onPlay()
, onPlayFromSearch()
, onPlayFromUri()
, onPlayFromMediaId()
) según la acción que hayas seleccionado.
Prueba el foco de audio
Una app de música que funcione correctamente debería poder controlar el foco de audio. Para probar el foco de audio, ejecuta otra app de audio junto con tu app. La página de controles de 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_TRANSIENT
oAUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
. - Presiona el botón para solicitar el enfoque.
- Vuelve a presionar el botón para liberar el enfoque.
Cómo probar los 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 multimedia y muestra la imagen y los datos del programa de la sesión. Los botones de transporte que están inhabilitados aparecen en un círculo naranja. Todos los demás están activos.
Prueba el reproductor con los botones de transporte. El estado de los botones de transporte debe cambiar según lo previsto. Por ejemplo, cuando presionas el botón REPRODUCIR, se debería inhabilitar y los botones PAUSA y DETENER se habilitan.
Vuelve a deslizar el dedo hacia la izquierda para acceder a 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 obtener vistas que te permiten recorrer la jerarquía de contenido de tu app o realizar búsquedas 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 tu app de video en una ventana y, luego, abre el MCT en modo de pantalla dividida.
Ejecución de pruebas de verificación
El framework de prueba de verificación ofrece pruebas de un clic que puedes ejecutar para garantizar que tu app de música responda correctamente a una solicitud de reproducción.
Prueba una app para teléfonos
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
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
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 pruebas disponibles. Si una prueba usa una consulta, como la de la prueba de reproducción de la búsqueda que se muestra en la Figura 7, habrá un campo de texto para ingresar la cadena de consulta.
El MCT incluye pruebas para las siguientes acciones multimedia y se agregan continuamente más pruebas al proyecto:
- Reproducir
- Reproducir desde la búsqueda
- Reproducir desde ID de medios
- Reproducir desde el URI
- Pausar
- Detener
- Ir al siguiente
- Ir al anterior
- Elemento de la fila que se puede omitir
- Ir a
Resultados de la prueba
Inicialmente, el área de resultados en la parte inferior de la vista estará vacía. Te mostrará los resultados cuando ejecutes una prueba. Por ejemplo, para ejecutar la reproducción desde la prueba de 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 de Android TV
Cuando inicies MCT en Android TV, verás una lista de apps de música instaladas. Ten en cuenta que una app solo aparecerá en esta lista si implementa un servicio de navegador multimedia.
Si seleccionas una app, accederás a la pantalla de prueba, 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 información, 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. Haz clic en Intro para ejecutar la prueba.
Para facilitar el ingreso de texto, también puedes usar un comando 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 crear 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 MCT en GitHub y consulta las instrucciones de las pruebas de verificación.
Consulta las instrucciones para contribuir.
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 este tipo de app.
Siempre aceptamos correcciones de errores y mejoras. Consulta las instrucciones de contribución.