我正在编写一个应用程序,它利用外部显示器(HDMI 和/或无线 miracast 或 chromecast 显示器)Presentation
通过DisplayManager
如果连接了蓝牙 a2dp 配置文件,我正在尝试强制该视频中的音频通过蓝牙 a2dp 配置文件播放。我很容易找到蓝牙设备的路由信息,并为音频路由选择它:
final MediaRouter mediaRouter = (MediaRouter) context.getSystemService(Context.MEDIA_ROUTER_SERVICE);
int nRoutes = mediaRouter.getRouteCount();
for (int i = 0; i < nRoutes; i++) {
if (mediaRouter.getRouteAt(i).getDeviceType() == MediaRouter.RouteInfo.DEVICE_TYPE_BLUETOOTH) {
mediaRouter.selectRoute(MediaRouter.ROUTE_TYPE_LIVE_AUDIO, mediaRouter.getRouteAt(i));
break;
}
}
这可行,但是,它会导致 wifi 显示器完全断开连接,而不是继续播放视频。我如何告诉 android 我只想覆盖音频路由而不是视频。奇怪的是,该RouteInfo
对象DEVICE_TYPE_BLUETOOTH
表明它同时支持这两种方法ROUTE_TYPE_LIVE_AUDIO
,ROUTE_TYPE_LIVE_VIDEO
但对我来说似乎不正确。