我有一个不是投射设备的远程播放设备(现在让我们称他为Johnny 5)。
通过客户端应用程序,我希望能够将内容投射到 Chromecast 或我的Johnny 5设备。该应用程序基于强制转换 SDK v3。
为了集成我的非投射设备,我构建了一个媒体路由器提供程序并扩展了会话和会话提供程序类。会话提供程序添加到我的 OptionsProvider 类的getAdditionalSessionProviders
方法中。
我设法使事情顺利进行:我的设备出现在使用Chromecast检测到的设备列表中(感谢MediaRouterProvider),当我选择它时,会话启动,然后我可以在其上投射内容。
但是,似乎RemoteMediaClient对象是Google-cast特定的(不能与非cast设备一起使用),就像许多Cast SDK功能(迷你控制器,扩展控制器......)一样。
这里关于投射对话框、遥控通知和锁定屏幕的问题:是否可以将这些与我的非投射设备一起使用?还是我必须编写整堆代码才能"模仿"Cast SDK功能?
关于投射对话框,我希望能够对其进行自定义以具有与Chromecast相同的行为,而无需编写我自己的设备选择器或覆盖默认按钮行为。
大部分工作将由您承担,为非投射设备编写大部分内容。正如您已经注意到的,强制转换 API 不会与非强制转换会话的会话进行交互。因此,您的选择是编写一个已由 Cast SDK 为强制转换设备实现的接口,并由您为非强制转换设备编写接口,并尝试尽可能多地使用该通用接口。获取锁定屏幕等内容相当于创建 MediaStyle 通知;当涉及 CastSession 时,CastSdk 会处理这种情况,当涉及不同类型的会话时,您需要创建类似的通知。对于强制转换 SDK 提供的开箱即用的几乎所有 UI 元素都是如此。