【问题标题】:MediaRouter: Detecting a chromecast device when using ActionBarSherlock?MediaRouter:使用 ActionBarSherlock 时检测到 chromecast 设备?
【发布时间】:2013-10-31 10:45:06
【问题描述】:

所以我将 Mediarouter 源修改为依赖于 ActionBarSherlock 而不是 AppCompat。但是,现在没有调用来自 MediaRouteAdapter onDeviceAvailable(...) 的回调。

关于如何让它发挥作用的任何想法?

我不想让投射按钮始终可见。相反,我想使用onDeviceAvailable(..) 仅在设备可用时使其可见。

【问题讨论】:

  • Mediarouter 从哪里获取源代码?
  • 谢谢。您能否分享您为达到现在的位置所采取的步骤?我有点不知道从哪里开始,而且你似乎是唯一一个有运气让两人打得很好的人。
  • 我保存了 mediaRouter 文件夹,并将其作为子模块添加到我的项目中。我添加了 ActionBarSherlock 作为 mediaRouter 的依赖项,以及最新版本的 v4 android 支持库。现在,当您尝试编译时,您可能会发现一些 (3-5) 错误,这些错误来自对 AppCompat 资源的引用。基本上将这些资源重命名为 ABS 资源。对于他们中的大多数人来说,只需将名称中的“AppCompat”部分替换为“Sherlock”即可。
  • 谢谢。什么mediaRouter文件夹?我在 frameworks/support/v7/mediarouter 下没有看到任何代码。

标签: android actionbarsherlock google-cast chromecast


【解决方案1】:

我发现了如何解决这个问题。

如果您使用 appcompat,则只有在您的网络中有 chromecast 设备时才能看到投射图标,具体取决于您对 onDeviceAvailable(...) 的实现。

但是,如果您使用 ABS,则当网络上有可用的 chromecast 设备时,不会调用 onDeviceAvailable(...) 方法。因此,为了看到演员图标,我们必须将其设置为始终可见。

所以问题是投射图标始终可见(当您将可见性设置为可见或将其添加到操作栏时)。

但是: MediaRouter 有不同的视图状态。一种用于投射设备可用时,另一种用于没有可用投射设备时。

Mediarouter 库由可绘制的 png 组成,它们是设备可用与否的图标。

只需用空白资源或任何适合应用的资源替换“没有可用路线”的资源即可。

当设备可用时,将显示正确的投射图标,当不可用时,将显示您的自定义资源(如果资源是空白视图,则为空白)。

以下是有关如何获取 mediarouter 源代码以及如何解决此问题的完整详细信息:http://www.droidorbit.com/2013/10/mediarouter-and-actionbarsherlock.html

【讨论】:

  • 我按照您上面建议的链接进行操作。但我得到了错误:MediaRouterJellybean, MediaRouterJellybeanMr1 无法解析为 SystemMediaRouteProvider.java 文件中的类型。并且 R.attr.isLightTheme 无法解析或不是 MediaRouterThemeHelper.java 文件中的字段。目前我将这些代码注释为无错误,然后将 Cast 示例与 ABS 集成并在 ActionBar 中显示 cast 图标。但我得到了错误:java.lang.ClassCastException: android.support.v7.app.MediaRouteActionProvider 不能转换为 com.actionbarsherlock.view.ActionProvider。请帮我解决它。谢谢
  • 能给你修改后的MediaRouter源代码吗?我的电子邮件是 duongtuhuybk@gmail.com。提前致谢
  • 发送给您的电子邮件 Huy Dong Tu
  • @Prem 感谢您的博客,我成功地实现了 MediaRouter!谢谢!唯一的事情是,对我来说,它没有任何黑客攻击就可以正常工作,ChromeCast 图标会根据 ChromeCast 是否打开而自动出现/消失。我使用了这个问题的答案stackoverflow.com/a/17842846/1433482,现在我的 onDeviceAvailable 也被调用了。想你可能会感兴趣......另外,我的图标是一个菜单项,就像这里描述的androiddev.orkitra.com/?p=70675
  • 此解决方案不再起作用,MediaRouteAdapter 已从 API 中删除。我有同样的问题,如果网络中没有投射设备,我想隐藏图标。任何想法如何做到这一点?
猜你喜欢
  • 2014-04-12
  • 1970-01-01
  • 1970-01-01
  • 2014-01-19
  • 1970-01-01
  • 2014-03-21
  • 1970-01-01
  • 2021-08-31
  • 2015-06-30
相关资源
最近更新 更多