如果我将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耳机。这可能吗?
答案 0 :(得分:0)
也许它可以在某些设备上运行,但如果您关心大多数设备的兼容性,那么答案是“否”。
当电话状态为MODE_IN_CALL
或MODE_IN_COMMUNICATION
时,所有流通常都会遵循PHONE
路由策略。这意味着从那时起不允许路由到A2DP:
1)A2DP无论如何都不支持双向语音。
2)如果您的BT配件支持免提配置文件,它将使用SCO链接作为语音音频,并且应关闭用于A2DP的ACL通道以避免两者之间的干扰。