Cover photo
Shawn Shen
Worked at Google
1,582 followers|101,698 views


Shawn Shen

Receiver  - 
Update: CastMediaPlayerStreamingDRM

Added to work around CORS issue for HLS streams in this sample. Now you can play them out of the box.

 * Added support of credentials for manifest, segment and license
 * Added audio/video bitrates picker: override getQualityLevel
 * Added support for custom license server
The D's profile photoYoshifumi YAMAGUCHI's profile photo
The D
This is a cool stuff. I've been trying to make HLS Stream to work as it written here:
But this doesn't work. 
Add a comment...

Shawn Shen

Receiver  - 
Sample: Cast Media Player Library for Streaming with DRM

This Google Cast sample app demonstrates how to play streaming media on Chromecast. It uses Cast Receiver SDK and Media Player Library and highlights the following features.

* Streaming: MPEG-DASH, Smooth Streaming, and HLS
* Enable live streaming
* Captions: external and in-stream
* Adaptive Bitrate Streaming
* DRM license server URL
* CORS and cross domain policy

It uses a Chrome sender but can work with Android or iOS senders as well. It also provides debugging features with live code snippets to illustrate interactions between sender and receiver.
Wiebe Elsinga's profile photoGDG Thessaloniki's profile photoMatthieu Bréchet's profile photoHugo Visser's profile photo
Hi, does anyone manage to read HLS content with this demo ? I've always got the same error displayed on chromecast : Fatal error.code=3
Add a comment...

Shawn Shen

Announcements  - 
Updates on Cast extensions and Media Player library

  - Cast extension stable update
  - Cast extension beta update
  - Media Player library improvements

For more detailed info check out:
Add a comment...

Shawn Shen

Shared publicly  - 
Web Audio API Protip

The Web Audio API is a JavaScript API for playing audio:

Chromecast supports the Audio API and currently it is the only way to play multiple simultaneous sounds in a receiver app. On Chromecast, the HTML video and audio tags can only support a single active media element at a time.

The Web Audio API is ideal for playing multiple short sounds like for the sound effects for a game.

Chromecast’s Web Audio API has a few limitations you need to be aware of:
 - The API does not support streaming. This means the entire audio file has to be loaded before it can be played.
 - The audio files need to fit in memory. If you have multiple sounds you could run out of memory if the the total audio data requires too much space.

Some of the fun things you can do with the Audio API are looping, cross-fading, mixing and also independently change the volume of each sound track. It is also possible to chain various sounds together using filters to create graphic equalizers and complex effects.

Here is a great intro on using this API:

We are eager to see what kinds of Cast apps you can create with the Web Audio API. Happy Casting!

#chromecastsdk   #chromecast   #protip  
Add a comment...

Shawn Shen

Chrome  - 
How to Get A Session in Google Cast Chrome App?

The first thing in developing a Chrome app for Chromecast is to get hold of a session via the Cast extension. There are a few ways to create new sessions and join existing sessions, as listed in the following use cases.

  - Create a new session: A user tries to cast some media to Chromecast and she initiates it by clicking on a e.g. Cast icon in your app, which triggers a requestSession API call. That will prompt her to pick a device and in turn creates a session.

 - New session by tab mirroring: A user tries to mirror your site from a tab but the Cast extension intelligently recognizes that your site has a Chrome app implemented and automatically creates a session.  Your content is cast via APIs and fetched directly from your backend instead of being mirrored from your desktop Chrome.

 - Connect to an existing session: A user already has a Cast session but she either reloads page or navigates to a new page on the same site.  On any of these pages when your app handles initializing Cast APIs, you can reconnect to that existing session. This is what we call auto-join.

For more details please visit this dev guide and check out code snippets for each case above in the sample project CastVideos-chrome:
Jeroen Wiert Pluimers's profile photo
Add a comment...
Have him in circles
1,582 people

Shawn Shen

Announcements  - 
Cast Extension Beta Updated

New features of the Cast extension beta 14.402.0.3 include:

* Universal media controls in extension UI for v2 apps
* Better device discovery using either/or (mDNS & DIAL) e.g. Windows antivirus issue
* App filtering to only show usable devices in a given context
* Enable users to choose casting method

Bonus: check out the entire screen mode!
Clas Le Petit's profile photoLeonard Miclos's profile photoArtem Russakovskii's profile photoBrian Hubbell's profile photo
+Shawn Shen I'm a bit confused. The entire screen casting in experimental mode has been available since last year, no?

Also I'm confused on the enable users to pick casting method part. The dropdown has always allowed us to pick the casting method, right? I see the menu is slightly reorganized, the Audio option has moved up to be part of the main list. What has actually changed here compared to non-beta version?

Add a comment...
Google Cast Chrome TicTacToe sample available

I added a Cast Chrome TicTacToe sample on github:

and it works like the Android TicTacToe sample and even shares the same backend receiver app.  Check it out.

ProTip: If you look into the source, a bonus there is how to do asynchronous loading of Chrome sender API using window['__onGCastApiAvailable'] = callback.
Add a comment...

Shawn Shen

Chrome  - 
New Chrome sample code for variety of media types

This Google Cast demo app shows how to cast various media e.g. video, movies, TV show, music and photo from a Chrome browser using Cast Chrome Sender SDK. It highlights metadata types listed here: and how metadata get sent to and handled by the Cast default receiver app.

This app also illustrates various auto join policy settings that define how sessions can be retrieved.
Jeroen Wiert Pluimers's profile photoLeif Sikorski's profile photo
Add a comment...

Shawn Shen

Announcements  - 
Public beta channel for the Google Cast extension

Earlier this month, we made the Google Cast SDK publicly available, allowing anyone to enable multi-screen experiences in their apps/sites.  In Chrome, this functionality is provided by the Google Cast extension, which was automatically updated to enable SDK features.

Going forward, we’ll continue to fix issues and add features to the Google Cast extension.  Similar to Chrome’s beta channel, today we’ve released a public beta channel for the Google Cast extension, so developers can test out the latest features before they’re released to the public.  Our goal in doing this is to work with the community to achieve several goals:

 - Input & Feedback: Developer input on the preview SDKs helped greatly in shaping the APIs and user experience of our public SDK launch.  We want to make sure that developers and passionate users can stay involved as things evolve.

 - Early Access: New SDK features don’t help users until they’re adopted by developers, so the sooner we can get capabilities to developers, the better.  We also want to make sure that changes never come as a surprise.

 - Stability: We want to make sure that new versions of the Google Cast extension don’t inadvertently break sites that integrate with the SDK.  Providing pre-release versions to the community is the best way to ensure we detect and address any issues prior to a public rollout.

The beta Google Cast extension is available immediately, and can be installed from the Chrome Web Store below (note that you’ll need to disable the public Cast extension to avoid conflicts).  It updates automatically, so you’ll always have the latest features and fixes.  The main updates in this initial public beta are as follows:

 - Added support for callback on completion of API script loading.
 - Fixes for media metadata inconsistency between Chrome and receiver SDKs.
 - A real-time logging window can be launched under “Options”.
 - Sender SDK can now extrapolate currentTime.

You can find more information on the beta channel here:  We’re looking forward to your feedback and to experiences that you create!
Dustin Caldwell's profile photoDusty Wilson's profile photoNew to neXus's profile photoCharles Beel's profile photo
Amazing :)
Add a comment...

Shawn Shen

Chrome  - 
Don't See Any Cast Devices From Chrome Apps?

UPDATE 2/10/2014:

On Windows machines if you happen to have more than 1 NIC device enabled it could result in failure in device discovery.  One solution is to disable all other NICs and only have Wifi.  Alternatively you should change network order so that Wifi has top priority.

For those of you who still struggle with Windows discovery issue, please let us know and share what have helped in resolving it.  Thanks.


If you're starting to develop Google Cast Chrome apps but cannot discover any Chromecast devices, be sure to go through the following checklist.

 * First of all, make sure that you set up device by following the instructions here.  Be sure to check the box to Send this Chromecast's serial number when checking for updates.

 * Make sure you get Chrome 32+ and the Cast extension from the Chrome Web Store

 * Get your device authorized by adding the device serial number to your own receiver app (unless you use the default media receiver app)

 * Reboot your Chromecast to clear out the cache every time your Developer Console settings changes

 * If you still have trouble discovering devices, try the following steps:

   ** Disabled/Re-enable your Cast extension
   ** Check that your sender app runs on a computer that is on the same network as the Chromecast device.
   ** Reboot your WiFi router to avoid possible IP conflict
   ** Host your receiver app on a fast network web server instead of localhost

For more detailed troubleshooting instructions across platforms of OSX to Windows, please go to this support link:
Jeroen Wiert Pluimers's profile photoClas Le Petit's profile photoSebastian Reynoso's profile photo
For Window 7 , this doesn't help as of Mars 6 2014. See issue 159 on the tracker:
Add a comment...
Have him in circles
1,582 people
Developer Advocate at Google
  • Google
    Developer Advocate
Working on Google Chromecast
Working on Google Chromecast now but previously worked on Google TV, Google Maps, Earth, and OpenSocial
Bragging rights
Studied physics and worked on super abstract superstring stuff, worked at CERN, Geneva before coming to Silicon Valley
Basic Information
Apps with Google+ Sign-in
1 review