Descripción general

El SDK de Cast permite al usuario seleccionar la transmisión de contenido audiovisual con un remitente, reproducirlo (o transmitirlo a) en otro dispositivo conocido como el receptor mientras controla la reproducción con el emisor.

El término remitente se refiere a una app que desempeña la función de controlador en la sesión de transmisión. Un remitente inicia la sesión de transmisión y administra la interacción del usuario con el contenido.

Hay muchos tipos de remitentes, incluidas las apps para dispositivos móviles y las aplicaciones web de Google Chrome, así como superficies de control virtuales en dispositivos táctiles de Google Home. Los controles multimedia del navegador web Chrome funcionan como remitentes, al igual que Asistente de Google.

El término receptor hace referencia a una app que se ejecuta en un dispositivo compatible con Cast y que es responsable de responder a los comandos del remitente y transmitir el contenido de transmisión desde un servicio de transmisión en línea al dispositivo compatible con Cast. Algunos ejemplos de dispositivos receptores compatibles con Cast son los Chromecasts, las smart TVs, las pantallas y las bocinas inteligentes.

El SDK de Cast también admite varios remitentes que se conectan a una sesión de transmisión. Por ejemplo, un remitente podría iniciar una sesión en un receptor y otro podría unirse a la misma sesión para controlar la reproducción, cargar contenido nuevo o poner en cola más contenido para más adelante.

Componentes y arquitectura de la app

Google Cast admite el desarrollo de apps de Sender para Android, iOS y plataformas web compatibles con Cast, como Google Chrome.

Una app receptora se ejecuta en un dispositivo compatible con Cast. Estos son algunos ejemplos:

  • Un Chromecast conectado a una televisión o un sistema de sonido de alta definición
  • Una televisión compatible con Cast
  • Una pantalla inteligente compatible con Cast
  • Un dispositivo Android compatible con Cast, como Android TV

Arquitectura de Cast de alto nivel

Un remitente controla la reproducción de contenido multimedia en un receptor mediante los mensajes de reproducción multimedia definidos por el SDK. Si un caso de uso de una app requiere el envío de datos que no están definidos formalmente en los mensajes estándar de reproducción multimedia, puedes usar el campo customData que proporcionan varios tipos de mensajes para pasar datos complementarios.

Existen dos situaciones básicas de desarrollo de apps de transmisión:

  1. Una solución de extremo a extremo basada en Cast. En este caso, el desarrollador debe compilar la app del remitente y dos apps receptoras: una receptora de Android TV y una de plataforma web (obtén más información sobre esto a continuación).
  2. Una app emisora compatible con Cast que pueda transmitir contenido (una pantalla o una transmisión multimedia) al receptor de transmisión predeterminado de Google, que se denomina receptor multimedia predeterminado En esta situación, el desarrollador solo necesita compilar una app, la app emisora. El receptor multimedia predeterminado es útil para el aprendizaje y las situaciones de reproducción muy limitadas. No resulta práctico para los receptores que requieren lógica empresarial, credenciales, administración de derechos o estadísticas personalizadas.

El SDK de Google Cast

El SDK de Google Cast se compone de varias bibliotecas de la API de Cast. Además de las APIs, existen dos tipos de documentación:

  • Guías de API que te brindan orientación para usar las APIs con código de muestra que demuestra las funciones de Cast
  • Instructivos de codelab que te indican el proceso de desarrollo de tipos específicos de apps de Cast.

Las APIs de Cast se dividen según la plataforma y el tipo de app de Cast. La Tabla 1 contiene vínculos a las guías para las diversas APIs de Cast.

Tabla 1: Guías del SDK de Cast
Plataforma Remitente Receptor
Android Apps de remitente de Android Descripción general del receptor de Android TV
Web Apps de remitente web Descripción general de Web Receiver
iOS Apps de remitente de iOS N/A

Tipos de apps remitentes

Las apps remitentes pueden ejecutarse en tres plataformas:

  • Web
  • Android
  • iOS

Si bien es probable que la elección del tipo de remitente dependa en gran medida de las plataformas de remitentes que quieras admitir, es importante conocer las funciones y limitaciones de cada tipo de remitente (consulta la Tabla 3).

Tabla 3: Comparación de remitentes
Capacidades Android Sender Remitente de iOS Remitente web
Pausas publicitarias y anuncios complementarios en una transmisión multimedia
Pistas de texto con estilo
Agrupa, diseña y activa pistas multimedia
Reproducción automática y fila (edición, reordenamiento y actualización)
Canales personalizados
Acciones personalizadas
IU de transmisión completa, incluidos el controlador y el minicontrolador
Intención de unirse

Tipos de apps receptoras

Las apps receptoras controlan la comunicación entre la app del remitente y el dispositivo de transmisión. Existen dos tipos principales de receptores: el receptor web y el receptor de Android TV. Se espera que proporciones un receptor web como mínimo y te recomendamos que lo hagas para maximizar la experiencia del usuario con tu aplicación.

Existen tres tipos de receptores web, cada uno con un conjunto distinto de cualidades y capacidades:

  • El receptor personalizado, que permite la lógica personalizada, el desarrollo de la marca y la modificación de los controles.
  • El receptor de medios con estilo, que permite un desarrollo de la marca personalizado
  • El receptor predeterminado, que es el tipo más básico. Esto no permite ninguna personalización y no es adecuado para las apps de producción.

Además de las capacidades que proporciona el receptor personalizado, este último proporciona Cast Connect, un conjunto de funciones que proporcionan una experiencia nativa para los usuarios, que combinan Cast con Android TV sin problemas.

En la Tabla 2, se destacan las capacidades de los diferentes tipos de receptores.

Tabla 2: Comparación de receptores
Receptor de Android TV Receptor personalizado Receptor de medios con estilo (SMR) Receptor multimedia predeterminado
Plataforma
Basado en Android (Java/Kotlin)
Basado en la Web (HTML5)
Requisitos
Debe estar registrado
Capacidades
Reproducción de contenido multimedia HLS y DASH
Compatibilidad con controles de tacto
Controla los comandos por voz de los dispositivos compatibles con el Asistente.
Estilo visual y desarrollo de la marca personalizables
Controla mensajes personalizados
Cast Connect

La elección entre las tres opciones de receptor web depende de los tipos de contenido multimedia que deba admitir la app, el grado de personalización de la IU requerido y los requisitos lógicos personalizados.

Cómo determinar qué tipo de receptor web compilar

Siempre que tu app se pueda integrar con Cast, usa las siguientes indicaciones para determinar qué tipo de receptor web debes compilar:

Crea un receptor personalizado en el siguiente caso:
La app requiere una o más de las siguientes funciones especiales:

  • El receptor de medios con estilo no proporciona el estilo
  • Modificaciones de los controles de tacto
  • Autorización o autenticación
  • Estadísticas del receptor
  • Licencia de DRM entregada por separado del manifiesto
  • Antes, durante o después de la publicidad
  • Cualquier otra funcionalidad del receptor o lógica personalizada de JavaScript
O
  • La aplicación requiere un estilo personalizado.
Y
  • Las capacidades de diseño del receptor de contenido multimedia con estilo no son suficientes.
Crea un receptor de medios con estilo en los siguientes casos:
  • La aplicación requiere un estilo personalizado.
Y
  • Las capacidades de diseño del receptor de contenido multimedia con estilo son suficientes.
Y
  • La app no requiere ninguna de las funciones especiales mencionadas anteriormente.
Usa el receptor de contenido multimedia predeterminado en los siguientes casos:
  • Se admite el formato de contenido multimedia
Y
  • La app no requiere un diseño personalizado.
Y
  • La app no requiere ninguna de las funciones especiales mencionadas anteriormente.