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
一.查看當前系統聲卡
tinypcminfo 用於查看pcm通道相關的信息 (tinypcminfo -D /proc/asound/cards) tinymix 可以得到音頻通路相關的各項配置參數。也可以通過添加參數修改其中的配置 tinyplay是一個簡易的音樂播放器,一般用於播放測試。 tinycap是一個簡易的錄音軟件,一般用於錄音測試。
rk3288:/ # cat /proc/asound/cards cat /proc/asound/cards 0 [rockchiprt5640c]: rockchip_rt5640 - rockchip,rt5640-codec rockchip,rt5640-codec
二.查看音頻配置參數 tinymix 調試通路
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源代碼並測試
等級 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
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 陣列 調試參數
四.耳機
耳機節點 /sys/class/switch/h2w/state
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); }