Android KK上对ALC5616调试笔记——音量调节

本文介绍了模拟信号通过ALC5616芯片输入并进行音量调节的过程,随后信号被送入ADC进行数字化。文章还提及了通过调整不同寄存器实现音量控制的方法,并提供了底层数据读取的具体实现路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Created with Raphaël 2.1.0analogADCCPU

大致流程是,模拟数据通过 line in 输入到ALC5616,经过寄存器 MX-0Fh (INL & INR Volume Control) 调节音量以后输入给ADC,ADC内部还有一次调节音量的机会,可以通过设置寄存器 MX-1Ch (Stereo1 ADC Digital Volume Control) 来实现。
如果觉得ALSA出来的数据不对的话,可以将底层数据读取出来,具体位置如下:

services/audioflinger/Threads.cpp
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp
index bf85b51..59b7d78 100644
--- a/services/audioflinger/Threads.cpp
+++ b/services/audioflinger/Threads.cpp

@@ -4538,6 +4539,7 @@ bool AudioFlinger::RecordThread::threadLoop()
                                 readInto = mRsmpInBuffer;
                                 mRsmpInIndex = 0;
                             }
+                            //tag for 读取alsa数据 , 以及再往下追read函数的实现。
                             mBytesRead = mInput->stream->read(mInput->stream, readInto,
                                     mBufferSize);
                             if (mBytesRead <= 0) {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值