Android - 用于检查哪个设备(有线耳机或 USB 耳机)正在播放音频(如果两者已连接)



当有线耳机或 USB 耳机都连接到 Android 设备时,我在检测哪个设备、有线耳机或 USB 耳机正在播放音频时遇到问题。

是否有允许检查的API

我注意到不同的设备以不同的方式运行。 例如,在带有Android 9的三星S10+上,稍后连接的外围设备用于播放音频。但是,在Moto G6上,无论以后连接哪个外围设备,始终使用Android 7和Samsung S8 + Android 9有线耳机。

我需要此信息来正确配置音频流并显示当前正在使用的设备。

请查看 MediaRouter API。

MediaRouter.RouteInfo getSelectedRoute(( 可能是您要查找的。

此外,它还允许您注册侦听器,以便在当前音频设备配置更改时收到通知(MediaRouter.回调接口(。它的 onRouteSelected 和 onRouteUnselected 回调在以下情况下被调用 音频设备分别启动/停止播放音频。

以下是我的 MTK 设备中的日志(删节(,展示了 MediaRouter.RouteInfo 的属性,以及我在通过 Jabra 蓝牙耳机听音乐时插入有线耳机时发生的事件流。

onRouteChanged RouteInfo{ name=Headphone, description=null, 状态=空,类别=路由类别{ 名称=系统 类型=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO 可分组=假 }, 支持类型=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , 演示文稿显示=空 }

onRouteUnselected RouteInfo{ name=Jabra MINI v1.0.5, 说明=蓝牙音频,状态=空,类别=路由类别{ 名称=系统类型=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO , 演示文稿显示=空 }

onRouteSelected RouteInfo{ name=Headphone, description=null, 状态=空,类别=路由类别{ 名称=系统 类型=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO 可分组=假 }, 支持类型=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , 演示文稿显示=空 }

onRouteRemoved路由信息{ name=Jabra MINI v1.0.5, 说明=蓝牙音频,状态=空,类别=路由类别{ 名称=系统类型=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO , 演示文稿显示=空 }

最新更新