Developing for

Chromecast



(probably the best way to spend 30€)



Anton Keks / @antonkeks / Codeborne

10M sold in 2014

Model Number: H2G2-42

AzureWave AW-NH387 802.11 b/g/n WiFi, Bluetooth & FM

Marvell DE3005-A1 System on Chip

Micron MT29F16G08MAA 2 GB Flash Memory

Micron D9PXV 512 MB DDR3L SDRAM

Marvell DE3005-A1 SoC

ARM @ 1.0 Ghz, single core

HW video/audio decoder (H.264, VC1, MPEG2)

Some basic GPU

HDMI 1.3 + CEC

Software

Android bootloader

Android kernel

UI: Google Chrome

Hence Chromecast

(auto-updates, of course)

What can it do?

Play video/audio

Display HTML pages

Cast browser tabs

Mirror screen

Mirror Android screen

All this with audio :-)

Sounds like AppleTV?

Not really!


3 times cheaper

Many times smaller

Cross-platform:

Linux & Windows & even Mac

Apps on TV

HTML/JS

running on the device

Called receivers

You use pc/phone to launch & control

Called senders

Receivers run independently from senders

Like Smart TV?

Not really!


Works on all TVs (any brand, old and new)

Much more supported devices

Will not get out of date after a few years

Full-featured senders are easy

Show time!

github: synology-cast-photos

github: synology-cast-photos-android

Synology NAS
photos + web server
TV with Chromecast
Loads receiver from Synology

Senders & Receivers

use

Google Cast API


Also works with Android TV

Senders

Chrome (with Google Cast extension)

Android apps & OS

iOS apps

UX Guidelines

Receiver = TV


  • Default media player
  • Styled media player (CSS)
  • Custom (own HTML/JS)


Multiple senders can be connected

Google Cast Developer Console

Receiver URL must be registered with Google

-> App ID

URL can be local

Published apps must use HTTPS

Unpublished apps only on devices registered for testing

Testing/Debugging

Registered devices provide developer's console

http://chromecast.local:9222

Tips for developers

Use latest HTML standards (no IE support needed!)

Use canvas for graphics


Abstract from receiver API:

Easier to develop/test

Assign commands to e.g. keyboard shortcuts

The catch?

Mostly 720p

Limited HW resources

Easy to crash

Hard to do animations

Breaking updates

Developers pay $5

More cool stuff

Backdrop

Ultrasonic PINs for (party) guests

CEC - use standard remote control

Cast audio from your phone

Synology DS video

Lots of apps on Google Play & Apple App Store

Happy hacking!


slides:// angryziber.github.io/slides


Anton Keks / @antonkeks / Codeborne