如何检查ChromeCast会话是否已在进行中

gre*_*eg 5 google-cast

用例是用户从他们的iPhone开始播放,比如说,然后拿起他们的iPad(都运行我的应用程序),并希望与其他iOS设备竞争并控制正在运行的视频.

在iOS上,我没有看到任何方法来确定我的接收器应用程序的实例是否已在Google ChromeCast设备上运行.一旦我创建了会话,我唯一能做的就是附加一个新的协议消息流,它会中断任何可能正在播放的内容.

这假设要在iOS客户端框架中处理,也许我需要在HTML接收器应用程序中进行一些编码?

谢谢.

Leo*_*lls 5

API之外还有一种方法可以确定应用程序是否正在运行.对ChromeCast IP地址的应用URL执行HTTP GET:http://192.168.0.x:8008/apps / 如果HTTP响应为200,则表示没有任何内容正在运行.如果HTTP响应为204,那么应用程序正在运行,HTTP响应将重定向到以下URL:http://192.168.0.x:8008/apps/GoogleMusic

这告诉你哪个应用正在运行.

有趣的是,Google Play音乐不能同时由2台设备控制,但YouTube可以.我怀疑Play Music正在使用RAMP,这就是Cast SDK为媒体流所做的事情.YouTube可能正在使用专有消息流来控制媒体播放.因此,如果您希望在由多个发件人应用程序控制的设备上安装应用程序,则可能必须执行相同的操作.


小智 2

一种方法是在启动会话之后和启动 loadMedia() 之前检查 playStatus。如果您的应用程序已经在运行 - 它应该返回一个非零(即 IDLE,PLAYING,...)结果。