¿Qué ofrece el SDK de Chromecast?

¿Qué ofrece el SDK de Chromecast?
3 comentarios Facebook Twitter Flipboard E-mail

Google Chromecast es mucho más que un dispositivo para hacer streaming multimedia. Las posibilidades que abre el SDK de Chromecast son bastante amplias. A pesar de ello, actualmente, el número de aplicaciones que soportan Chromecast es reducido, basadas básicamente enviar una foto o un vídeo al televisor, sin más. Y lo peor, que cuando te acostumbras, echas en falta que algunas aplicaciones no ofrezcan soporte. Todavía faltan apps que exploten el potencial del Chromecast.

Simplificando los componentes del Chromecast, podemos decir que es un dispositivo con un conector HDMI y una interfaz WiFi que ejecuta una versión reducida de Chrome OS y un navegador Chrome, aunque sin soporte de momento para WebGL y Chrome Native Client (NaCL), sería increíble si lo añaden. Con todo esto, su potencia reside en la colaboración con las aplicaciones Android (también iOS) que integran el SDK de Chromecast.

El principio fundamental de las aplicaciones que implementan las funcionalidades del Chromecast es que sean totalmente transparente para los usuarios que no dispongan de dicho dispositivo. Es decir, solamente si estamos conectados a una red WiFi con un Chromecast disponible se muestra el botón de enviar/interactuar con él. Para realizar este "descubrimiento" automático se usa el protocolo DIAL (Discover And Launch Protocol) y UPnP, esto hace multicast dentro de la red para que sean los dispositivos conectados en la red los que respondan si están disponibles.

Componentes de una aplicación que use el SDK de Chromecast

El control de la reproducción del Chromecast la realiza un sender (dispositivo móvil o un ordenador) y el receiver (el televisor) es el que reproduce el contenido. Debido a las limitaciones de hardware, CPU y GPU, las aplicaciones que hacen de receptores tienen que ser lo más ligeras posibles. Chromecast soporta un único streaming concurrente de audio o vídeo y múltiples audio tracks utilizando WebAudio API. Existen distintas recomendaciones a nivel de UI y usabilidad para ambos componentes para tener un diseño consistente en las apps.

Implementación del Sender (aplicación que envía contenido hacia Chromecast)

Para implementar una sender app debemos hacerlo integrada en una aplicación Android, iOS o Chrome.

Centrándonos en lo que son las aplicaciones Android necesitamos como mínimo Gingerbread (minSDK version 9). El SDK de Chromecast está integrado en la librería de Google Play Services, la cual incluye otras utilidades como, por ejemplo, el servicio de notificaciones Push. También es necesario las librerías de compatibilidad (android-support-v7-appcompat y android-support-v7-mediarouter), imprescindible para manejar el botón de chromecast e integrarlas en el actionbar.

Sin entrar en demasiados detalles de implementación, el SDK de Chromecast nos permite:

  • Añadir el botón de Cast de Chromecast en nuestra aplicación. Por lo general, situado en el action bar o en el reproductor que usemos en nuestra aplicación.
  • "Descubrir" y seleccionar el dispositivo Chromecast al que queremos enviar el streaming, en el caso que haya más de uno con información referente a cada uno (identificador único).
  • Lanzar y arrancar el Chromecast conectado a nuestro flujo de interacción con nuestra aplicación.
  • Manejo de la sesión y de las interacciones con el reproductor del Chromecast, pausando, adelantando o cualquier selección sobre el audio o video.
  • Crear notificaciones para ir enviando a la barra de notificaciones del dispositivo información del streaming del Chromecast.
  • A partir de Android 4.1 podemos implementar la pantalla de bloqueo para mostrar información de la reproducción.
  • Control del volumen a través de los botones hardware del dispositivo móvil que controla el streaming.

Implementación del Receiver (aplicación que se ejecuta en el Chromecast)

De la parte de la aplicación que se ejecuta en el Chromecast el receptor podemos implementarla usando HTML5/JavaScript. El objetivo de esta aplicación es ofrecer una interfaz que muestre el contenido en la televisión y gestione las interacciones que reciba del dispositivo de control. Google pone a nuestra disposición sus librería Media Player junto a su API para interactuar.

Receiver Chromecast SDK

La interfaz que se muestra en el Chromecast puede ser una básica con un estilo pre-definidos. Los componentes ya está creados por Google específicamente para el streaming de audio o vídeo. Puede ser modificada tanto en colores como en el branding a través de CSS.

Si queremos hacer cosas más personalizadas fuera de los controles básicos de un reproductor multimedia debemos crear un Custom Receiver usando la API JavaScript del Receiver. Esto nos permite mayor versatilidad ofreciendo más elementos en pantalla propios.

Ciclo de vida y comunicación entre el dispositivo Android y Chromecast

El ciclo de vida para lanzar un aplicación a nuestro televisor vía Chromecast se compone de los siguientes pasos:

  • Inicio de nuestra aplicación, en la cual tenemos el Sender app encargado de comunicarse con el dispositivo Chromecast. Mediante el autodescubrimiento nuestro Sender App habilita el botón de Chromecast en la aplicación.

  • Posteriormente, debemos seleccionar el dispositivo en concreto que queremos utilizar como receptor, en el caso de que existan más de uno aparecerá un desplegable con los Chromecast, también pueden aparecer más dispositivos compatibles como las Smart TV de Samsung en la app de YouTube.

  • Cuando hayamos seleccionado el dispositivo se arranca la mencionada aplicación receptora (Receiver App) que mostrará en la pantalla del televisor la interfaz que le hayamos implementado. Si, por ejemplo, hemos lanzados un vídeo aparecerá en pantalla el loading del contenido y, a continuación, se iniciará la reproducción. En este punto tanto el Sender App y Receiver App están conectados para que podamos controlar desde nuestro dispositivo Android el Chromecast hasta que sea desvinculado.

Ciclo de vida de Chromecast

Formatos multimedia soportados por Chromecast

  • Formatos de imagen: BMP, GIF, JPEG, PNG, WEBP
  • Protocolos de streaming: MP4, WebM
  • Protocolos de streaming de bitrate adaptativo: MPEG-DASH, SmoothStreaming, HTTP LIve Streaming (HLS)
  • Codec de video: H.264 Level 4.1, 4.2 y 5, VP8
  • Codec de audio: HE-AAC, LC-AAC, CELT/Opus, MP3, Vorbis
  • Implementaciones de subtítulos: TTML, WebVTT, CEA-608

Más información | Google Cast SDK, Ejemplos en Github
En Xataka Android | Así es usar Chromecast a día de hoy en España, Se prepara una avalancha de apps para ChromeCast, ¿será suficiente para el despegue del mismo? |

Comentarios cerrados
Inicio