MediaRouteButton 检测设备的回调

Posted

技术标签:

【中文标题】MediaRouteButton 检测设备的回调【英文标题】:Callback for MediaRouteButton detect devices 【发布时间】:2017-05-08 08:31:20 【问题描述】:

我对适用于 android 的 cast SDK V3 有疑问。当 MediaRouteButton 变得可见时(检测到 chromecast 设备),我找不到并设置回调。 提前致谢!

【问题讨论】:

你能解释一下用例吗? 您好,我想开始投射项目,这是从外部选择的。在 onCreate 中,我处理了意图并获取了 uri,然后想将其发送到 chromecast,但是扫描 chromecsaat 设备需要一些时间,当我为 MediaRouteButton 调用 showDialog 时,我得到了 NullPointerException。谢谢! 【参考方案1】:

您有几种选择,您需要试验一下,看看哪一种适合您的情况:

    您可以使用CastContext 注册CastStateListener。此侦听器提供有关投射状态的信息,例如,其中之一是“没有可用的投射设备”,因此您可以看到投射设备何时可用。

    您可以使用DiscoveryManagerListener,它会在投射设备的可用性发生变化时通知您。

    当您使用CastButtonFactory 使用setUpMediaRouteButton 添加您的演员按钮时,您会得到一个MenuItem 回复。然后,您可以自己监控该菜单项的可见性。

【讨论】:

非常感谢!最佳且完整的答案。【参考方案2】:

我也遇到了同样的问题

我先设置:CastButtonFactory.setUpMediaRouteButton(nContext, nCastButton);

然后是CastContext上的addCastStateListener;

问题是 CastButtonFactory 没有足够的时间来识别我网络中的 chromecast。所以听众首先用“没有设备”向我射击

解决方法是在 SessionManager 上添加 addSessionManagerListener,并且仅在 onSessionStarted 或 onSessionResumed 上开始在 CastContext 上设置 addCastStateListener

【讨论】:

以上是关于MediaRouteButton 检测设备的回调的主要内容,如果未能解决你的问题,请参考以下文章

Android:默认禁用 MediaRouteButton

拆解不会影响 MediaRouteButton

mediaroutebutton CastCompanionLibrary 上的连接动画

膨胀类 android.support.v7.app.MediaRouteButton 时出错

获取可投射设备的列表

过滤或隐藏可用的 ChromeCast 设备