在Android中,有没有办法使用“MODE_IN_COMMUNICATION”将音频路由到A2DP?

时间:2013-05-08 04:37:51

标签: android audio routing bluetooth a2dp

如果我将AudioManager模式设置为MODE_IN_COMMUNICATION,并将Media Player流设置为STREAM_VOICE_CALL,我可以将音频路由到扬声器或内置手机扬声器。如果它被路由到内部扬声器,并且有线耳机插入int,它会自动路由到它。但是,我无法找到将音频路由到A2DP耳机的方法(不将音频模式更改为MODE_NORMAL,或将流更改为STREAM_MUSIC)。我的问题是使用MODE_NORMAL和STREAM_VOICE_CALL会导致某些设备出现问题,如果已经在后台播放音乐,则使用STREAM_MUSIC会出现问题,然后我的应用程序会与该背景音乐“混合”。

所以,我希望有一种方法可以使用MODE_IN_COMMUNICATION和STREAM_VOICE_CALL组合强制音频到A2DP耳机。这可能吗?

1 个答案:

答案 0 :(得分:0)

也许它可以在某些设备上运行,但如果您关心大多数设备的兼容性,那么答案是“否”。

当电话状态为MODE_IN_CALLMODE_IN_COMMUNICATION时,所有流通常都会遵循PHONE路由策略。这意味着从那时起不允许路由到A2DP:

1)A2DP无论如何都不支持双向语音。

2)如果您的BT配件支持免提配置文件,它将使用SCO链接作为语音音频,并且应关闭用于A2DP的ACL通道以避免两者之间的干扰。