MTK 上层调用各种音频回路测试方法

如何使用这些组合,请看如下介绍:

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

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值