【问题标题】:Use cast features with non-cast devices对非投射设备使用投射功能
【发布时间】:2017-08-16 09:23:43
【问题描述】:

我有一个不是投射设备的远程播放设备(我们暂时称他为 Johnny 5)。

从客户端应用程序,我希望能够将内容投射到 Chromecast 或我的 Johnny 5 设备。该应用基于Cast SDK v3

为了集成我的非广播设备,我构建了一个媒体路由器提供程序并扩展了 SessionSessionProvider 类。 Session Provider 是在我的OptionsProvider 类的getAdditionalSessionProviders 方法中添加的。

我设法让事情顺利进行:我的设备出现在 Chromecast 检测到的设备列表中(感谢 MediaRouterProvider),当我选择它时,会话开始,然后我可以在其上投射内容。

但是,RemoteMediaClient 对象似乎是 Google-cast 特定的(不能用于非投射设备),就像许多 Cast SDK 功能(迷你控制器、扩展控制器......)一样。

这里的问题是关于投射对话框、远程控制通知和锁定屏幕:是否可以在我的非投射设备上使用这些?还是我必须编写整个代码来“模仿” Cast SDK 功能?

关于 Cast 对话框,我希望能够对其进行自定义,使其具有与 Chromecast 相同的行为,而无需编写自己的设备选择器或覆盖默认按钮行为。

【问题讨论】:

    标签: android chromecast google-cast


    【解决方案1】:

    大部分工作都由您来完成,为非广播设备编写大部分代码。如您所见,Cast API 不会与非 CastSession 的 Session 交互。因此,您的选择是编写一个接口,该接口已经由 Cast SDK 为投射设备实现,由您为非投射设备实现,并尝试尽可能多地使用该通用接口。获取锁屏之类的东西相当于创建一个 MediaStyle 通知; CastSdk 会在涉及 CastSession 时处理该问题,并且在涉及不同类型的 Session 时需要创建类似的通知。 Cast SDK 开箱即用提供的几乎所有 UI 元素都是如此。

    【讨论】:

    • 自上次更新播放服务 (11.5.09) 以来,我的 Session 子类的“start”方法不再被调用。我被困在“会话开始”事件上。你知道这是一个错误吗?
    猜你喜欢
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 2016-03-02
    • 2019-08-17
    • 2014-07-25
    • 2014-03-15
    • 1970-01-01
    相关资源
    最近更新 更多