我正在尝试在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设备不显示?其他应用程序可以看到它,所以我应该有连接。
答案 0 :(得分:1)
好的,对我有用的是:
在媒体路由器回调中添加onRouteAdded方法,并查找包含以下说明的设备:“Chromecast”
答案 1 :(得分:0)
您必须侦听onRouteAdded和onRouteRemoved以获得更新。在此方法内,您可以要求MediaRouter提供所有可用的路由,并仅过滤具有以下条件的路由:
playbackType == MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE