Dispositivos de audio

Google Cast para dispositivos de audio solo es compatible con la reproducción de audio. En esta guía, se describe cómo optimizar las aplicaciones de transmisión para dispositivos de solo audio y aprovechar las demandas reducidas en el uso de memoria, CPU y ancho de banda de red.

Una app compatible con Google Cast para audio debe tener en cuenta lo siguiente:

  • Google Cast para dispositivos de audio no muestra video ni gráficos. Sin embargo, muchos dispositivos de audio tienen una pantalla para mostrar metadatos, como el estado de reproducción (reproducción o pausa) y el progreso. Tu aplicación no debe mostrar esa información importante del usuario solo en el receptor. La información crítica y la mayor parte de la interfaz de usuario se deben mostrar en el remitente.
  • Para ejecutar correctamente las aplicaciones del receptor web, Google Cast para dispositivos de audio debe procesar los gráficos, incluso si no se muestran. Dado que es posible que los dispositivos no admitan operaciones de gráficos acelerados por hardware, las aplicaciones receptoras deben evitar el uso de operaciones con alto contenido gráfico, como gradientes de color, rotación, combinación alfa y volver a dibujar objetos grandes, como barras de progreso, más de una vez por segundo.
  • Google Cast para dispositivos de audio solo admite contenido protegido por Widevine para la administración de derechos digitales (DRM).
  • En la mayoría de los dispositivos Google Cast para audio, la aplicación emisora controla el rango de volumen completo del dispositivo (una bocina, por ejemplo) y no solo el volumen de la entrada de fuente de audio de la TV, como ocurre con un dispositivo Chromecast.
  • Además de controlar la reproducción con el dispositivo emisor (por ejemplo, un teléfono), la app puede tener que controlar la reproducción con los controles del dispositivo, como un control remoto, botones del dispositivo o una aplicación remota externa.
  • Un dispositivo Google Cast para audio puede mostrar metadatos de contenido con una pantalla LCD pequeña, salida HDMI (para barras de sonido o receptores de video y audio), o una aplicación remota externa, según la IU del dispositivo específico.

Desarrollo

El primer paso a fin de desarrollar una aplicación de Cast que admita Google Cast para audio es desarrollar una aplicación de transmisión para audio y video, y asegurarte de que se ejecute en Chromecast. En este documento, se da por sentado que desarrollaste y probaste una app de ese tipo.

Una app puede admitir tanto dispositivos de audio como video. Debe saber cuándo se realiza la transmisión a uno y el otro, y tomar medidas para garantizar la mejor experiencia del usuario en una situación determinada.

Por ejemplo, las apps de audio y video dual (como las aplicaciones de reproducción de archivos locales o NAS) deben habilitar la transmisión a dispositivos de solo audio para admitir la reproducción de archivos de audio, pero la app no debe permitir que el usuario envíe archivos de video al dispositivo de solo audio. La app puede usar las API de capacidades del dispositivo para remitentes que se describen a continuación a fin de determinar el contenido apropiado para el dispositivo.

Para admitir audio en Google Cast, tu app debe hacer lo siguiente:

  • Solo se admite el audio: transmisión de archivos de música y audio, radio, etc. El contenido multimedia que se transmite a la app del receptor web no debe ser de transmisión de video. Además, evita transmitir imágenes y gráficos para mejorar el tiempo de inicio de la aplicación y el uso de la memoria. Consulta los Lineamientos de uso de memoria a continuación.

  • Ejecuta el contenido de la manera esperada en un dispositivo Cast para audio, así como en un Chromecast común.

Funciones del dispositivo

Tu app puede saber si se ejecuta en un dispositivo de solo audio en función de las API de funciones del dispositivo, disponibles desde el mismo dispositivo o a través de las API del remitente o el receptor.

Encabezado HTTP del dispositivo

El encabezado HTTP CAST-DEVICE-CAPABILITIES que proporciona el dispositivo de transmisión durante el inicio de la app describe las capacidades del dispositivo. El dispositivo envía una solicitud con este encabezado al servidor que aloja la app de Web Receiver. El encabezado de un dispositivo de solo audio describe las capacidades del dispositivo con CAST-DEVICE-CAPABILITIES: {"display_supported":false}.

Cuando el servidor recibe la solicitud del dispositivo, puedes usar la información de este encabezado a fin de redireccionar la solicitud a la app de receptor web que está optimizada para dispositivos de audio.

API de Web Receiver

Puedes obtener el mismo objeto de capacidades del dispositivo llamando a CastReceiverManager.getDeviceCapabilities() cuando se cargue la app de Web Receiver.

Consulta Capacidades del dispositivo para obtener más información.

API del remitente

Cada una de las API de Cast emisoras también tiene la información de las capacidades del dispositivo. Estos permiten que la app emisora determine qué tipo de contenido multimedia enviar al receptor. Si tu app admite audio y video, se puede evitar el envío de contenido de video a dispositivos de solo audio. Además, tu app puede controlar el volumen con el método más apropiado para el dispositivo, como se describe en la lista de tareas de diseño. Consulta las siguientes API de funciones del dispositivo para remitentes:

Lineamientos de uso de memoria

Las apps de recepción web que se ejecutan en dispositivos de audio deben administrar el uso de memoria de la siguiente manera:

  • Evita descargar o usar cualquier recurso de imagen o gráfico para reducir la huella de memoria y acortar el tiempo hasta que comienza la reproducción.
  • Cuando se usan extensiones de fuente de medios (MSE), las aplicaciones deben limitar el búfer de transmisión a 2 MB. Si usas la biblioteca de reproductores multimedia (MPL), el tamaño del búfer de transmisión de la aplicación ya está definido por MPL.
  • Cuando se usa HTMLMediaElement, Chrome define el tamaño del búfer de transmisión de la aplicación según la frecuencia de transmisión. Limita la tasa de bits de audio a 2 megabits por segundo, lo que admite todos los códecs descritos en Medios compatibles (hasta 48 KHz y 16 bits).

Control de volumen

En la mayoría de los dispositivos Google Cast para audio, la aplicación emisora controla el rango de volumen completo del dispositivo, no solo el volumen de entrada de la fuente de audio, como ocurre con un dispositivo Chromecast. Esto significa que los incrementos de cambio de volumen deben ser más pequeños para las aplicaciones de solo audio. Consulta los siguientes documentos para obtener lineamientos sobre cómo proporcionar control de volumen en tu app:

Controles de dispositivos

Google Cast para dispositivos de audio puede tener sus propios controles de reproducción (como botones y controles remotos). Estos usan los mensajes de reproducción de contenido multimedia definidos para el espacio de nombres urn:x-cast:com.google.cast.media, como se describe en Mensajes de reproducción multimedia, a fin de controlar la reproducción en la aplicación receptora. La aplicación receptora debe admitir estos mensajes de reproducción de contenido multimedia para admitir los controles de reproducción del dispositivo.

Además, tu app emisora debe admitir Mensajes del receptor a remitente para que, si el usuario cambia el estado de contenido multimedia con los controles del dispositivo, pueda recibir un mensaje de estado del receptor y actualizar la IU según corresponda.

Pantalla del dispositivo

Un dispositivo Google Cast para audio puede tener una pantalla LCD en el dispositivo o una aplicación de control específica del dispositivo que muestre metadatos de contenido multimedia. La app receptora debe proporcionar estos metadatos para todas las pistas de audio y asegurarse de que estén sincronizados con el contenido que se está reproduciendo para garantizar que se muestren correctamente en la pantalla. Si la aplicación usa metadatos personalizados, también debe proporcionar los metadatos de audio estándar (nombre de la pista, nombre del artista, título del álbum, etc.) como se describe para cada plataforma a continuación.

El receptor obtiene los metadatos del remitente cuando carga el contenido multimedia. En la app emisora, con el comando para cargar el contenido multimedia en el receptor, debes especificar los campos que se describen a continuación a fin de que los metadatos se muestren en Google Cast para el dispositivo de audio. Usa las siguientes API:

Si la app de Cast administra una cola de contenido multimedia en el receptor o en la nube, el receptor web debe transmitir las actualizaciones de estado del contenido multimedia mediante el espacio de nombres urn:x-cast:com.google.cast.media para que se sincronicen todos los remitentes.

Registro

Debes registrar tu dispositivo Google Cast para realizar pruebas y registrar tu app de forma que admita Google Cast para dispositivos de audio mediante la Consola para desarrolladores del SDK de Google Cast.

  • Consulta Dispositivos para obtener más información sobre cómo registrar dispositivos.
  • Debes marcar la casilla de verificación Compatible con la transmisión a dispositivos de solo audio cuando registres tu aplicación para permitir que esta descubra Google Cast en dispositivos de audio. Consulta Registra tu aplicación.

En el caso de las apps no publicadas, como las que se usan para pruebas, también debes seleccionar la opción de admitir dispositivos de solo audio a fin de que la app descubra dispositivos de solo audio.

Google Cast para audio 2.0

Google Cast for Audio (GC4A) 2.0 es la plataforma de audio de última generación diseñada para dispositivos con poca memoria, a fin de expandir el ecosistema de dispositivos que pueden transmitir tu contenido.

Es importante que los desarrolladores de apps de audio prueben sus apps en GC4A 2.0. Puedes probar tu app de Cast para GC4A 2.0 en una bocina Bose de producción (por ejemplo, la bose Smart Speaker 500).

Comunícate con gc4a-support-external@google.com si necesitas ayuda para configurar la prueba o si no puedes usar una bocina Bose. Si deseas depurar tu app, Google recomienda usar el registro de depuración de Cast.