Googlecast,无线投屏,多屏互动 GoogleCast大致工作原理

京东集团合作案例

Google Cast 大致工作原理

发送端 app(sender app)使用 SDK,将需要播放的媒体的信息发送到 Google 的服务器,服务器再通知接收端播放(所以发送端和接收端必须都可以访问 Google 的服务器才行)。接收端运行的是一个浏览器,它会根据发送端的app ID和媒体信息,去载入对应的一个网页这个网页(receiver app)也是由发送端 app 的开发者提供的,的将会负责播放相应的媒体内容。即使接收端时 Chromecast Audio 之类只能播放音频的硬件,这个网页也是会载入并渲染的。

Google Cast 和 DLNA 或者苹果的 AirPlay 不同之处,一是依赖 Google 的服务器,也就是说必须连接到 Internet 才可以用,如果只有一个局域网是不行的。二是前两个的接收端播放器接收端本身提供的,开发者只需要提供要播放的内容就可以,但是 Google Cast 则是需要提供自己的receiver app,这样的好处是开发者可以高度定制(比如可以定制UI,或者加入弹幕、歌词滚动、音乐可视化之类复杂功能),虽然接收端往往运行的并不是Android这样的开放操作系统,但是因为receiver app的本质是网页,所以开发难度并不高。

不过,如果你不需要定制化的receiver app,Google也提供了一套默认的receiver app,拥有最基本的音视频播放的功能。

无线会议

Google Cast 一些概念的介绍

发送端(sender)

可以是Chrome 浏览器(电脑版或者 Android 版)、Android 设备、iOS 设备。

发送端 app(sender app)

使用了 Google Cast SDK 的 app,可以是 web app(网页)也可以是 Android 或 iOS app。

接收端(receiver)

支持作为接收端的硬件,如Chromecast、机顶盒、音箱、电视之类。

接收端 app(receiver app)

接收端上运行的 app,由 sender 指定的 app ID 决定,其本质是网页,接收端上的浏览器将其载入并执行。

session

Sender 首先要跟特定的 receiver 建立 session 才能相互通信。建立 session 对于用户来说就是“设备配对”的过程。

media

Session 建立后,Sender 可以使用 session 的 loadMedia 方法来告诉 receiver 播放媒体。如果 loadMedia 成功,Sender 会获得一个 media 对象。该对象反映了receiver app正在播放的媒体,其中包含了播放状态,播放队列等信息。