Android 框架层录音音量调节功能引入

本文探讨了在Android系统中如何实现录音音量调节功能,由于系统本身未提供接口,需要依赖硬件支持。解决方案是通过直接修改音频驱动中的ctl值来实现。录音音量的调节与播放音量在工作原理上有所不同,播放音量在audioflinger混合时计算到音频波形,而录音则需将设定的音量值传递给内核。
摘要由CSDN通过智能技术生成

    录音音量安卓系统本身并未提供相关接口,同时录音音量调节也需要硬件的支持。如果硬件支持,是可以实现的。share一下的我的方案。

先说一下思路,对于驱动来说,仅仅是调节相关ctl值就可以了。如此以来,可以看到和paly back的音量调节会有很大区别,play back调节音量,在policy startoutput时,会getVolume,音量的生效是在audioflinger 做mix时,将音量计算到音频波形中。所以,对于录音音量调节,我们需要把上层设置音量数值,直接给kernel就ok了。

1.来看驱动的支持

diff --git a/kernel/sound/soc/codecs/rk616_codec.c b/kernel/sound/soc/codecs/rk616_codec.c
index 831bb24..0d6949f 100755
--- a/kernel/sound/soc/codecs/rk616_codec.c
+++ b/kernel/sound/soc/codecs/rk616_codec.c
@@ -1940,6 +1940,14 @@ static const struct snd_kcontrol_new rk616_snd_path_controls[] = {
        */
        SOC_ENUM_EXT("Modem Input Enable", rk616_modem_input_type,
                rk616_modem_input_get, rk616_modem_input_put),
+        SOC_SINGLE_TLV("PGAL Capture Volume", RK616_PGAL_CTL,
+                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值