如果我将AudioManager模式设置为MODE_IN_COMMUNICATION,并将媒体播放器流设置为STREAM_VOICE_CALL,我可以将音频路由到扬声器或内置手机扬声器 . 如果它被路由到内部扬声器,并且有线耳机插入int,它会自动路由到它 . 但是,我无法找到将音频路由到A2DP耳机的方法(不将音频模式更改为MODE_NORMAL,或将流更改为STREAM_MUSIC) . 我的问题是使用MODE_NORMAL和STREAM_VOICE_CALL会导致某些设备出现问题,如果已经在后台播放音乐,则使用STREAM_MUSIC会出现问题,然后我的应用程序会与该背景音乐“混合” .
所以,我希望有一种方法可以使用MODE_IN_COMMUNICATION和STREAM_VOICE_CALL组合强制音频到A2DP耳机 . 那可能吗?
1 回答
也许它适用于某些设备,但如果你关心大多数设备的兼容性,那么答案是“否” .
当电话状态为
MODE_IN_CALL
或MODE_IN_COMMUNICATION
时,所有流通常都遵循PHONE
路由策略 . 这意味着不允许路由到A2DP,因为:1)A2DP无论如何都不支持双向语音 .
2)如果您的BT配件支持免提配置文件,它将使用SCO链接作为语音音频,并且应关闭用于A2DP的ACL通道以避免两者之间的干扰 .