如何使用这些组合,请看如下介绍:
AudioSystem.setParameters(“SET_LOOPBACK_TYPE=Type, OutputDevice”);
Type参数如下:
enum loopback_t {
NO_LOOPBACK = 0,
// AFE Loopback //以下3个是用于吹气模式
AP_MAIN_MIC_AFE_LOOPBACK = 1,
AP_HEADSET_MIC_AFE_LOOPBACK = 2,
AP_REF_MIC_AFE_LOOPBACK = 3,
// Acoustic Loopback //以下5个是可以听到说话声的。
MD_MAIN_MIC_ACOUSTIC_LOOPBACK = 21,
MD_HEADSET_MIC_ACOUSTIC_LOOPBACK = 22,
MD_DUAL_MIC_ACOUSTIC_LOOPBACK_WITHOUT_DMNR = 23,
MD_DUAL_MIC_ACOUSTIC_LOOPBACK_WITH_DMNR = 24,
MD_REF_MIC_ACOUSTIC_LOOPBACK = 25,
};
OutputDevice参数如下:
enum loopback_output_device_t {
LOOPBACK_OUTPUT_RECEIVER = 1,
LOOPBACK_OUTPUT_EARPHONE = 2,
LOOPBACK_OUTPUT_SPEAKER = 3,
};
用例如下:
// Enable Main Mic Loopback to headset
AudioSystem.setParameters(“SET_LOOPBACK_TYPE=1,2”);
// Testing …
// Disable Current Loopback Function
AudioSystem.setParameters(“SET_LOOPBACK_TYPE=0”);
如果是上层app调用,请用AudioManager.setParameters(“SET_LOOPBACK_TYPE=1,2”);
打开
吹气的
sAudioManager.setParameters(“SET_LOOPBACK_TYPE=3,3”);
能听到声音的
sAudioManager.setParameters(“SET_LOOPBACK_TYPE=25,3”);
25为对应下面的要loopback的源端设备 MD_REF_MIC_ACOUSTIC_LOOPBACK ,或AP_REF_MIC_AFE_LOOPBACK
目标输出设备SET_LOOPBACK_TYPE=25,3 逗号后面的3就是我们要输出的spk,LOOPBACK_OUTPUT_SPEAKER
我们mic2对应的就是这个带ref的mic
其实这两个没有多大区别
关闭
sAudioManager.setParameters(“SET_LOOPBACK_TYPE=0”);
vendor/mediatek/proprietary/hardware/audio/common/V3/include/LoopbackManager.h
enum loopback_output_device_t {
LOOPBACK_OUTPUT_RECEIVER = 1,
LOOPBACK_OUTPUT_EARPHONE = 2,
LOOPBACK_OUTPUT_SPEAKER = 3,
};
代码在vendor\mediatek\proprietary\hardware\audio\common\V3\aud_drv\AudioALSALoopbackController.cpp
https://blog.csdn.net/u010481276/article/details/104995476
https://mp.weixin.qq.com/s/3VvsJiT5SFwghrH5FKjycw
mAudioManager.setParameters(“SET_LOOPBACK_TYPE=AP_MAIN_MIC_AFE_LOOPBACK,3”);打开loopback测试时
有啸叫回音,其中第一个参数表示loopback类型,第二个参数表示输出设备
解决loopback啸叫回音的基本方法是减小音量
使用afe loopback时可修改:
AudioLoopbackController.cpp中的值static const float kMaxMasterVolume = 1.0;默认设定为最大,将其改小
使用acoustic loopback 时可修改:
SpeechLoopbackController.cpp中的值static const float kMaxVoiceVolume = 1.0;默认设定成最大,将其改小
adb shell am start -n com.ape.factory/.AuTestActivity -S -e mainmic 3
loopback 测试时的log,从主MIC输入,到有线耳机输出
AudioALSALoopbackController: +open(), output_devices = 0x8, input_device = 0x80000004