Las aplicaciones emisoras de Google Cast controlan la reproducción en el dispositivo receptor enviando mensajes en formato JSON a la aplicación receptora. Del mismo modo, el receptor envía mensajes al remitente, también en formato JSON. Los mensajes pueden ser comandos del remitente que cambian el estado del reproductor, respuestas a esos comandos del receptor o estructuras de datos que describen el contenido multimedia para la aplicación del receptor.
De conformidad con las Condiciones del Servicio Adicionales para Desarrolladores del SDK de Google Cast, una aplicación de medios de Cast debe usar estos mensajes, tal como se definen aquí, para controlar la reproducción de medios en el receptor. De esta manera, la app de música tendrá una experiencia del usuario coherente en todas las plataformas y se garantizará que una aplicación de Cast admita casos de uso nuevos y futuros. Estas estructuras también admiten datos personalizados, cuando corresponde, y una aplicación puede definir sus propios mensajes para los comandos que no admite el SDK.
El espacio de nombres para los mensajes de reproducción de contenido multimedia se define como urn:x-cast:com.google.cast.media.
Nota: Los mensajes y las estructuras de esta especificación tienen un tamaño máximo implícito determinado por el tamaño máximo de un mensaje de transporte. No hay límite para los campos individuales. Actualmente, el tamaño máximo del mensaje de transporte es de 64 KB.
Estructuras de datos de espacios de nombres comunes
En un espacio de nombres común, se define un superconjunto de estructuras de datos que usan todos los artefactos del espacio de nombres de medios.
Imagen
Es la descripción de una imagen, que incluye una pequeña cantidad de metadatos para permitir que la aplicación emisora elija imágenes, según cómo las renderizará.
La altura y el ancho son opcionales en solo un elemento de un array de imágenes. Por ejemplo, si se devuelve un solo elemento, son opcionales; si se devuelven dos elementos, uno de ellos debe especificar una altura y un ancho, pero el remitente puede optar por la opción "predeterminada" si no le gusta la que se pasó con parámetros específicos.
| Nombre | Tipo | Descripción |
|---|---|---|
| url | URI | URI de la imagen |
| height | integer | opcional Altura de la imagen |
| width | integer | opcional Ancho de la imagen |
Volumen
Es el volumen de la transmisión de contenido multimedia. Se usa para los efectos de entrada y salida graduales en la transmisión de medios. (Nota: El volumen del sistema se cambia con las APIs del remitente). El volumen de la transmisión no se debe usar junto con el control deslizante o los botones de volumen para controlar el volumen del dispositivo. Se debe pasar al menos uno de los siguientes parámetros para cambiar el volumen de la transmisión.
| Nombre | Tipo | Descripción |
|---|---|---|
| level | doble | opcional Nivel de volumen actual de la transmisión como un valor entre 0.0 y 1.0, donde 1.0 es el volumen máximo. |
| Silenciado | booleano | opcional Indica si el dispositivo Cast está silenciado, independientemente del nivel de volumen. |
Estructuras de datos del espacio de nombres de medios
Estos mensajes describen el estado del reproductor multimedia. El espacio de nombres es urn:x-cast:com.google.cast.media.
MediaInformation
Esta estructura de datos describe un flujo de medios.
| Nombre | Tipo | Descripción |
|---|---|---|
| contentId | string | Es el identificador específico del servicio del contenido que cargó el reproductor multimedia. Es una cadena de formato libre y específica de la aplicación. En la mayoría de los casos, será la URL del contenido multimedia, pero el remitente puede optar por pasar una cadena que el receptor pueda interpretar correctamente. Longitud máxima: 1,000 |
| streamType | enum (string) |
Describe el tipo de artefacto de medios como uno de los siguientes:
|
| contentType | string | Tipo de contenido MIME del contenido multimedia que se reproduce |
| metadata | objeto | opcional Objeto de metadatos de medios, uno de los siguientes: |
| duración | doble | opcional Duración del stream que se está reproduciendo actualmente en segundos |
| customData | objeto | opcional Es un BLOB de datos específico de la aplicación que define la aplicación emisora o la aplicación receptora. |
GenericMediaMetadata
Describe un artefacto de medios genérico.
| Nombre | Tipo | Descripción |
|---|---|---|
| metadataType | integer | 0 (el único valor) |
| title | string | opcional Título descriptivo del contenido. El reproductor puede recuperar el título de forma independiente con content_id, o bien el remitente puede proporcionarlo en el mensaje Load. |
| subtitle | string | opcional Es el subtítulo descriptivo del contenido. El reproductor puede recuperar el título de forma independiente con content_id, o bien el remitente puede proporcionarlo en el mensaje Load. |
| imágenes | Image[] | opcional Es un array de URLs a una imagen asociada con el contenido. El remitente puede proporcionar el valor inicial del campo en el mensaje Load. Debe proporcionar los tamaños recomendados |
| releaseDate | cadena (ISO 8601) | Opcional Fecha y hora ISO 8601 en que se lanzó este contenido. El reproductor puede recuperar el título de forma independiente con content_id, o bien el remitente puede proporcionarlo en el mensaje Load. |
MovieMediaMetadata
Describe un artefacto de medios de una película.
| Nombre | Tipo | Descripción |
|---|---|---|
| metadataType | integer | 1 (el único valor) |
| title | string | opcional Título descriptivo del contenido. El reproductor puede recuperar el título de forma independiente con content_id, o bien el remitente puede proporcionarlo en el mensaje Load. |
| subtitle | string | opcional Es el subtítulo descriptivo del contenido. El reproductor puede recuperar el título de forma independiente con content_id, o bien el remitente puede proporcionarlo en el mensaje Load. |
| Studio | string | Opcional Es el estudio que lanzó el contenido. El reproductor puede recuperar el estudio de forma independiente con content_id, o bien el remitente puede proporcionarlo en el mensaje Load. |
| imágenes | Image[] | opcional Es un array de URLs a una imagen asociada con el contenido. El remitente puede proporcionar el valor inicial del campo en el mensaje Load. Debe proporcionar los tamaños recomendados |
| releaseDate | cadena (ISO 8601) | Opcional Fecha y hora ISO 8601 en que se lanzó este contenido. El reproductor puede recuperar el título de forma independiente con content_id, o bien el remitente puede proporcionarlo en el mensaje Load. |
TvShowMediaMetadata
Describe un artefacto de medios de un episodio de un programa de televisión.
| Nombre | Tipo | Descripción |
|---|---|---|
| metadataType | integer | 2 (el único valor) |
| seriesTitle | string | opcional Título descriptivo de la serie de TV. El reproductor puede recuperar el título de forma independiente con content_id, o bien el remitente puede proporcionarlo en el mensaje Load. |
| subtitle | string | opcional Subtítulo descriptivo del episodio de TV. El reproductor puede recuperar el título de forma independiente con content_id, o bien el remitente puede proporcionarlo en el mensaje Load. |
| temporada | integer | opcional Número de temporada del programa de TV |