我有一个不是演员设备的远程播放设备(我们暂时叫他 Johnny 5 )。
从客户端应用中,我希望能够将内容投射到Chromecast或我的 Johnny 5 设备。该应用基于Cast SDK v3。
为了集成我的非播放设备,我构建了一个媒体路由器提供商并扩展了Session& SessionProvider个班级。会话提供程序已添加到getAdditionalSessionProviders
类的OptionsProvider方法中。
我设法让事情有效:我的设备出现在使用Chromecast检测到的设备列表中(感谢MediaRouterProvider),当我选择它时,会话启动,然后我可以在其上投射内容。< / p>
但是,似乎RemoteMediaClient对象是特定于Google的(不能与非播放设备一起使用),就像很多Cast SDK功能(迷你控制器,扩展控制器......)。 / p>
此处的问题涉及Cast对话框,远程控制通知和锁定屏幕:是否可以将这些用于我的非投射设备?或者我是否需要对整个代码进行编码以“模仿”Cast SDK功能?
关于Cast对话框,我希望能够自定义它以获得与Chromecast相同的行为,而无需编写我自己的设备选择器或覆盖默认按钮行为。
答案 0 :(得分:0)
大多数工作都在你身边,为非铸造设备编写大部分内容。正如您所注意到的,Cast API不会与不是CastSessions的Sessions交互。因此,您可以选择编写一个已经由Cast SDK为演员设备实现的接口,并为您编写非演员设备,并尝试尽可能使用该公共接口。锁定屏幕之类的东西等于创建MediaStyle通知;当涉及到CastSession时,CastSdk处理该问题,并且当涉及不同类型的Session时,您需要创建类似的通知。对于Cast SDK提供的几乎所有UI元素都是如此。