(六)mt6735 voip通话下,receiver和speaker的模式选择问题

[audioCommon.html" target="_blank" class="relatedlink">Audio Common]voip通话下,当receiver模式时设置从主MIC录音,speaker模式时设置从副mic录音,再切到receiver时,还是副mic录音
[DESCRIPTION]
VOIP通话下,当receiver模式时设置从主mic录音,speaker模式时设置从副mic录音,再切到
receiver时,还是副mic录音
[SOLUTION]
原因:VOIP下,如果有开USE_REFMIC_IN_LOUDSPK,则从听筒切到免提后,会使用副mic,而再从免
提切到听筒时,却没有将mic设回主mic
修改方法:
在AudioALSAStreamIn.cpp
status_t AudioALSAStreamIn::updateOutputdeviceInfoForInputStream(audio_devices_t
output_devices)
{
...
if (output_devices != mStreamAttributeTarget.output_devices)
{
//only need to modify the input device under VoIP
if (mStreamAttributeTarget.BesRecord_Info.besrecord_voip_enable == true)
{
if (output_devices == AUDIO_DEVICE_OUT_SPEAKER)
//这里只针对Speaker做处理,如果切回到听筒,没有把mic切回来的动作
{
if (inputdevice == AUDIO_DEVICE_IN_BUILTIN_MIC)
{
if (USE_REFMIC_IN_LOUDSPK == 1)
{
inputdevice = AUDIO_DEVICE_IN_BACK_MIC;
ALOGD("%s(), force using back mic", __FUNCTION__);
}
}
}
if (output_devices == AUDIO_DEVICE_OUT_EARPIECE)
//如果切回到听筒,把mic切回到主mic
{
inputdevice = AUDIO_DEVICE_IN_ BUILTIN _MIC;
ALOGD("%s(),using main mic", __FUNCTION__);
}
}
...
}

posted @   xtusir  阅读(641)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· golang自带的死锁检测并非银弹
阅读排行:
· 一个适用于 .NET 的开源整洁架构项目模板
· AI Editor 真的被惊到了
· API 风格选对了,文档写好了,项目就成功了一半!
· 【开源】C#上位机必备高效数据转换助手
· .NET 9.0 使用 Vulkan API 编写跨平台图形应用
点击右上角即可分享
微信分享提示