【问题标题】:Can't get a list of cast devices on the network无法获取网络上的投射设备列表
【发布时间】:2014-03-13 12:37:31
【问题描述】:

我正在尝试在 Android 中以编程方式获取投射设备列表,而不使用 SDK 中的 MediaRouteActionProvider 按钮。

我像这样创建一个 MediaRouter 和 MediaRouteSelector:

mMediaRouter = MediaRouter.getInstance(this);
mMediaRouteSelector = new MediaRouteSelector.Builder()
   .addControlCategory(CastMediaControlIntent.CATEGORY_CAST)
   .build();

然后我开始发现:

mMediaRouter.addCallback(mMediaRouteSelector, mMediaRouterCallback,
   MediaRouter.CALLBACK_FLAG_PERFORM_ACTIVE_SCAN);

在 onProviderAdded 回调方法中,我似乎只获得了 3 个提供程序:Android、com.google.android.youtube 和 com.google.android.gms。只有 'android' 提供了一个名为 'Phone' 的路由。

为什么我的 chromecast 设备没有显示?其他应用可以看到它,所以我应该有连接。

【问题讨论】:

  • 我在同一条船上。 YouTube 可以投射视频,但我无法通过自己的应用进行投射。

标签: android google-cast chromecast


【解决方案1】:

好的,对我有用的是:

在您的媒体路由器回调中添加 onRouteAdded 方法并查找描述为“Chromecast”的设备

【讨论】:

  • 这行得通。原来只需要监听 onRouteAdded 回调,不需要 onProviderAdded。
  • 我并不总是得到“Chromecast”的描述,它不允许连接,但有时它可以工作。
【解决方案2】:

您必须监听 onRouteAdded 和 onRouteRemoved 以获取更新。在此方法中,您可以向 MediaRouter 询问所有可用路由并仅过滤具有以下内容的路由:

playbackType == MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 2022-07-16
    相关资源
    最近更新 更多