【问题标题】:Chromecast SDK detects UPnP MediaRenderers because of AllCast由于 AllCast,Chromecast SDK 检测到 UPnP MediaRenderers
【发布时间】:2014-03-11 08:36:17
【问题描述】:

我有一个控制 UPnP MediaRenderers 的 Android 应用,现在我想修改它以使用 Chromecast。

由于我必须混合使用 UPnP 和 Chromecast,而且我的应用没有使用 ActionBarCompat,我无法使用 Cast Companion Library,所以我尝试自己集成 Cast SDK,构建自定义按钮。

对于 UPnP,我使用的是 Cyber​​link 库,因为使用 Android SDK 中的 WiFiP2PManager 我可以发现设备,但我似乎无法使用它制作完整的 UPnP 控制点。 (如果我错了,请纠正我!)

问题是我的手机中安装了 Koushik Dutta 的 AllCast,并且这个应用程序已经注册了一个新的 MediaRouterProviderService,所以现在我的 UPnP 渲染器显示了两次:一个是 Cyber​​link 发现的渲染器,另一个是由 Cyber​​link 发现的 MediaRoute投射 SDK!

我不想删除 Cyber​​link,因为那样我的应用程序将依赖于安装 AllCast。但我不希望这些渲染器在我的 UI 中出现两次。

如何从我的设备发现中排除此 MediaRouterProvider?有没有办法识别这些重复项并过滤它们?

非常感谢。

【问题讨论】:

  • 但根据 MediaRouteProvider javadoc,这不是预期的功能吗?
  • "媒体路由提供者也可以通过在提供者的清单中注册 MediaRouteProviderService 来对所有应用程序全局可用。当媒体路由提供者注册为服务时,所有使用媒体路由 API 的应用程序将能够发现和使用提供者的路线,而无需安装任何其他东西。”

标签: android upnp google-cast chromecast


【解决方案1】:

我找到了一种区分这两种设备的方法。而不是在 MediaRouteSelector 中使用控制类别 MediaControlIntent.CATEGORY_REMOTE_PLAYBACK (又名“给我所有能够远程播放的设备”)我现在使用 CastMediaControlIntent.categoryForRemotePlayback() (又名“给我所有能够使用默认接收器进行远程播放的设备”应用”)。现在我只得到 Chromecast。 :)

当然,这仅适用于不想创建自己的 Chromecast 远程应用的发件人应用。

【讨论】:

    猜你喜欢
    • 2020-04-04
    • 2012-11-21
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 2019-04-21
    相关资源
    最近更新 更多