mt6735 [Audio Policy]连接蓝牙耳机,通话时声音路径切换到听筒或者喇叭,触屏时听不到触屏音
2017-11-22 09:10
1621 查看
[DESCRIPTION]
复现步骤:支持双卡的手机=>插入卡2=>背景播放音乐=>进入情境模式打开触屏音=>连接蓝牙耳机=>拨打电话=>通话时
切换声音路径到听筒(喇叭)=>触屏=>没有听到触屏音
[SOLUTION]
请帮忙修改/mediatek/platform/common/hardware/audio/AudiomtkPolicyManager.cpp中的以下函数:
voidAudioMTKPolicyManager::checkA2dpSuspend()
{
if(!mHasA2dp){
return;
}
audio_io_handle_ta2dpOutput=getA2dpOutput();
if(a2dpOutput==0){
return;
}
//suspendA2DPoutputif:
//(NOTalreadysuspended)&&
//((SCOdeviceisconnected&&
//(forcedusageforcommunication||forrecordisSCO)))||
//(phonestateisringing||incall)
//
//restoreA2DPoutputif:
//(Alreadysuspended)&&
//((SCOdeviceisNOTconnected||
//(forcedusageNOTforcommunication&&NOTforrecordisSCO)))&&
//(phonestateisNOTringing&&NOTincall)
//
if(mA2dpSuspended){
if(((mScoDeviceAddress=="")||
((mForceUse[AudioSystem::FOR_COMMUNICATION]!=AudioSystem::FORCE_BT_SCO)&&
(mForceUse[AudioSystem::FOR_RECORD]!=AudioSystem::FORCE_BT_SCO)))&&
((mPhoneState!=AudioSystem::MODE_IN_CALL)&&
#ifdef MTK_AUDIO
(mPhoneState!=AudioSystem::MODE_IN_CALL_2)&&//添加这一行
#endif
(mPhoneState!=AudioSystem::MODE_RINGTONE))){
mpCLIentInterface->restoreOutput(a2dpOutput);
mA2dpSuspended=false;
}
}else{
if(((mScoDeviceAddress!="")&&
((mForceUse[AudioSystem::FOR_COMMUNICATION]==AudioSystem::FORCE_BT_SCO)||
(mForceUse[AudioSystem::FOR_RECORD]==AudioSystem::FORCE_BT_SCO)))||
((mPhoneState==AudioSystem::MODE_IN_CALL)||
#ifdef MTK_AUDIO
(mPhoneState!=AudioSystem::MODE_IN_CALL_2)&&//添加这一行
#endif
(mPhoneState==AudioSystem::MODE_RINGTONE))){
mpClientInterface->suspendOutput(a2dpOutput);
mA2dpSuspended=true;
}
}
}
如果以上修改OK的话,您可以申请patch:ALPS01000035
资料来源:一牛网论坛 MT6735 http://bbs.16rd.com/thread-454409-1-1.html
复现步骤:支持双卡的手机=>插入卡2=>背景播放音乐=>进入情境模式打开触屏音=>连接蓝牙耳机=>拨打电话=>通话时
切换声音路径到听筒(喇叭)=>触屏=>没有听到触屏音
[SOLUTION]
请帮忙修改/mediatek/platform/common/hardware/audio/AudiomtkPolicyManager.cpp中的以下函数:
voidAudioMTKPolicyManager::checkA2dpSuspend()
{
if(!mHasA2dp){
return;
}
audio_io_handle_ta2dpOutput=getA2dpOutput();
if(a2dpOutput==0){
return;
}
//suspendA2DPoutputif:
//(NOTalreadysuspended)&&
//((SCOdeviceisconnected&&
//(forcedusageforcommunication||forrecordisSCO)))||
//(phonestateisringing||incall)
//
//restoreA2DPoutputif:
//(Alreadysuspended)&&
//((SCOdeviceisNOTconnected||
//(forcedusageNOTforcommunication&&NOTforrecordisSCO)))&&
//(phonestateisNOTringing&&NOTincall)
//
if(mA2dpSuspended){
if(((mScoDeviceAddress=="")||
((mForceUse[AudioSystem::FOR_COMMUNICATION]!=AudioSystem::FORCE_BT_SCO)&&
(mForceUse[AudioSystem::FOR_RECORD]!=AudioSystem::FORCE_BT_SCO)))&&
((mPhoneState!=AudioSystem::MODE_IN_CALL)&&
#ifdef MTK_AUDIO
(mPhoneState!=AudioSystem::MODE_IN_CALL_2)&&//添加这一行
#endif
(mPhoneState!=AudioSystem::MODE_RINGTONE))){
mpCLIentInterface->restoreOutput(a2dpOutput);
mA2dpSuspended=false;
}
}else{
if(((mScoDeviceAddress!="")&&
((mForceUse[AudioSystem::FOR_COMMUNICATION]==AudioSystem::FORCE_BT_SCO)||
(mForceUse[AudioSystem::FOR_RECORD]==AudioSystem::FORCE_BT_SCO)))||
((mPhoneState==AudioSystem::MODE_IN_CALL)||
#ifdef MTK_AUDIO
(mPhoneState!=AudioSystem::MODE_IN_CALL_2)&&//添加这一行
#endif
(mPhoneState==AudioSystem::MODE_RINGTONE))){
mpClientInterface->suspendOutput(a2dpOutput);
mA2dpSuspended=true;
}
}
}
如果以上修改OK的话,您可以申请patch:ALPS01000035
资料来源:一牛网论坛 MT6735 http://bbs.16rd.com/thread-454409-1-1.html
相关文章推荐
- 关于蓝牙耳机通话,切换声音路径
- mt6735 [Speech]通话过程中连接BT再切换成听筒,上行音量变小
- 建立通话,如何连接蓝牙耳机SCO
- mt6735 [Audio Common]通话时,概率性出现听筒或喇叭无声问题,如何debug
- iOS OC环信实时语音切换听筒免提听不到声音报错:AVAudioSessionErrorCodeBadParam
- 解决win10蓝牙耳机正确连接却无法播放网页声音的问题
- 经由蓝牙适配器连接蓝牙耳机失败解决方法。
- Android:蓝牙耳机断开连接,音频播放器暂停播放
- Android跟蓝牙耳机建立连接有两种方式
- windows10连接蓝牙耳机
- Win7蓝牙耳机怎么连接电脑
- 蓝牙切换耳机和蓝牙耳机的时候卡住了。
- 解决win10台式机插入耳机没有声音或者音量不大
- Android与蓝牙耳机建立连接的分析
- Android跟蓝牙耳机建立连接有两种方式
- Android音乐播放模式切换-外放、听筒、耳机
- Android蓝牙连接蓝牙音箱和耳机的 A2dp与Headset Profile
- Android音乐播放模式切换-外放、听筒、耳机
- 音频输入在有线耳机和蓝牙耳机直接切换时候mediaplayer的时间戳流程
- Cubietruck---30.蓝牙耳机与有线耳机的切换