RK:音频 RK3288 Android7.1 调整录音的音量
RK3288_Android7.1基于tinyalsa的音频调试说明 https://blog.csdn.net/qq_30624591/article/details/104001561
Android音频系统之USB设备通路(Android 5.1) https://blog.csdn.net/achina2011jy/article/details/103504399
P=U^2\R (电功率=电压的平方 除以 电阻)
一.查看当前系统声卡
1 2 3 4 | tinypcminfo 用于查看pcm通道相关的信息 (tinypcminfo -D /proc/asound/cards) tinymix 可以得到音频通路相关的各项配置参数。也可以通过添加参数修改其中的配置 tinyplay是一个简易的音乐播放器,一般用于播放测试。 tinycap是一个简易的录音软件,一般用于录音测试。 |
1 2 3 4 | rk3288:/ # cat /proc/asound/cards cat /proc/asound/cards 0 [rockchiprt5640c]: rockchip_rt5640 - rockchip,rt5640-codec rockchip,rt5640-codec |
二.查看音频配置参数 tinymix 调试通路
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | tinymix Mixer name: 'rockchip,rt5640-codec' Number of controls: 125 ctl type num name value 0 BOOL 1 Mono Playback Switch Off 1 INT 2 Mono DAC Playback Volume 175 175 2 BOOL 2 Speaker Channel Switch Off Off 3 INT 2 Speaker Playback Volume 31 31 4 BOOL 2 HP Channel Switch Off Off 5 INT 2 HP Playback Volume 31 31 6 BOOL 2 OUT Playback Switch Off Off 7 BOOL 2 OUT Channel Switch Off Off 8 INT 2 OUT Playback Volume 31 31 9 BOOL 2 DAC2 Playback Switch On On 10 INT 2 DAC1 Playback Volume 175 175 11 INT 1 IN1 Boost 0 12 INT 1 IN2 Boost 0 |
三.调整录音的音量
1) 先通过串口或adb shell,以root用户权限使用amix 命令调节录音的音量,例如:
amix "IN2 Boost"
amix "ADC Capture Volume"
以上命令用于查看当前的设置,然后便可根据支持的值来调节并测试。
2) 调试好后,修改 hardware/rockchip/audio/tinyalsa_hal/codec_config/rt5651_config.h 文件中 rt5651_main_mic_capture_controls 数组中对应配置项的值,编译Android源代码并测试
1 2 3 4 5 | 等级 0 - 8 只有打开录音后 输入命令才有效 不能先输入命令再录音 rk3288:/ # amix -c 0 "IN1 Boost" 5 amix -c 0 "IN1 Boost" 5 Card: 0 IN1 Boost: 5 { 0 - 8 } |
Android7.1 Linux4.4
1 2 3 4 5 6 7 8 9 10 11 12 13 | diff --git a/hardware/rockchip/audio/tinyalsa_hal/codec_config/rt5640_config.h b/hardware/rockchip/audio/tinyalsa_hal/codec_config/rt5640_config.h index 251b9e6..ce88caf 100755 --- a/hardware/rockchip/audio/tinyalsa_hal/codec_config/rt5640_config.h +++ b/hardware/rockchip/audio/tinyalsa_hal/codec_config/rt5640_config.h @@ - 114 , 7 + 114 , 7 @@ const struct config_control rt5640_main_mic_capture_controls[] = { //min=0,max=8, bypass=0=0db, 30db=3, 52db=8 { .ctl_name = "IN1 Boost" , - .int_val = { 5 }, + .int_val = { 2 }, }, //dBscale-min=-17.625dB,step=0.375dB,min=0,max=127 { |
三.USB-mic
敲adb 命令 tinymix -D 2
1 INT 6 Capture Channel Map 3 4 7 8 9 10
询问 厂家 USB-mic 阵列 调试参数
四.耳机
1 | 耳机节点 /sys/ class / switch /h2w/state |
1 2 3 4 5 6 7 | public String getDevPath() { return String.format(Locale.US, "/devices/virtual/switch/%s" , mDevName); } public String getSwitchStatePath() { return String.format(Locale.US, "/sys/class/switch/%s/state" , mDevName); } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】