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 检测设备的回调的主要内容,如果未能解决你的问题,请参考以下文章
mediaroutebutton CastCompanionLibrary 上的连接动画