MTK Android tinycap录制音频

由于项目需要,需要绕开MTK android架构的录音方式,并且能用tinycap录音。如果正常开机,使用tinycap录音
tinycap /sdcard/aud-test.wav -D 0 -d 1 -c 2 -b 16 -r 16000
所录音的声音是mute的。原因是我们需要用tinymix设置相关的音频控件。
下面是如果确定需要设置哪些控件的方法。

编译出tinycap和tinymix

tinycap和tinymix 是tinyalsa下的可执行程序,源码在external\tinyalsa下
我们只需要在device.mk 内添加

PRODUCT_PACKAGES += tinycap
PRODUCT_PACKAGES += tinymix

编译即可

确认那些控件需要打开

1.在开机后,有root权限的情况,执行tinymix,得到控件状态。

tb8163p3_64_bsp:/ # tinymix
tinymix
Mixer name: 'mt-snd-card'
Number of controls: 63
ctl     type    num     name                                     value

0       ENUM    1       Audio_Amp_R_Switch                       Off
1       ENUM    1       Audio_Amp_L_Switch                       Off
2       ENUM    1       Voice_Amp_Switch                         Off
3       ENUM    1       Speaker_Amp_Switch                       Off
4       ENUM    1       Headset_Speaker_Amp_Switch               Off
5       ENUM    1       Ext_Speaker_Amp_Switch                   Off
6       ENUM    1       Headphone_Speaker_Mux                    Speaker
7       ENUM    1       Headset_PGAL_GAIN                        (null)
8       ENUM    1       Headset_PGAR_GAIN                        (null)
9       ENUM    1       Handset_PGA_GAIN                         -21Db
10      ENUM    1       Lineout_PGAR_GAIN                        0Db
11      ENUM    1       Lineout_PGAL_GAIN                        0Db
12      ENUM    1       Ext_Amp_Gain                             6dB
13      ENUM    1       AUD_CLK_BUF_Switch                       Off
14      ENUM    1       Audio_Preamp1_Switch                     OPEN
15      ENUM    1       Audio_Preamp2_Switch                     OPEN
16      ENUM    1       Audio_ADC_1_Switch                       Off
17      ENUM    1       Audio_ADC_2_Switch                       Off
18      ENUM    1       Audio_ADC_3_Switch                       Off
19      ENUM    1       Audio_ADC_4_Switch                       Off
20      ENUM    1       Audio_PGA1_Setting                       12Db
21      ENUM    1       Audio_PGA2_Setting                       12Db
22      ENUM    1       Audio_PGA3_Setting                       -6Db
23      ENUM    1       Audio_PGA4_Setting                       -6Db
24      ENUM    1       Audio_MicSource1_Setting                 ADC1
25      ENUM    1       Audio_MicSource2_Setting                 ADC1
26      ENUM    1       Audio_MicSource3_Setting                 ADC1
27      ENUM    1       Audio_MicSource4_Setting                 ADC1
28      ENUM    1       Audio_MIC1_Mode_Select                   ACCMODE
29      ENUM    1       Audio_MIC2_Mode_Select                   ACCMODE
30      ENUM    1       Audio_MIC3_Mode_Select                   ACCMODE
31      ENUM    1       Audio_MIC4_Mode_Select                   ACCMODE
32      ENUM    1       SineTable_DL_DAC                         Off
33      ENUM    1       SineTable_UL_ADC                         Off
34      ENUM    1       Codec_Loopback_Setting                   OFF
35      ENUM    1       Speech_MD_USAGE                          Off
36      ENUM    1       Audio_Hdmi_SideGen_Switch                Off
37      ENUM    1       AP_Loopback_Select                       AP_LOOPBACK_NONE
38      ENUM    1       Audio_i2s0_SideGen_Switch                Off
39      ENUM    1       Audio_i2s0_hd_Switch                     Off
40      ENUM    1       Audio_ExtCodec_EchoRef_Switch            Off
41      INT     1       Audio Mrgrx Volume                       65536
42      ENUM    1       cmb stub Audio Control                   CMB_STUB_AIF_3
43      ENUM    1       Audio_I2S0dl1_hd_Switch                  Off
44      ENUM    1       Audio_FMTX_hd_Switch                     On
45      ENUM    1       Audio_SideGen_Switch                     OFF
46      ENUM    1       Audio_SideGen_SampleRate                 48K
47      ENUM    1       Audio_SideGen_Amplitude                  1/128
48      ENUM    1       Audio_Sidetone_Switch                    Off
49      ENUM    1       Audio_Mode_Switch                        Normal_Mode
50      INT     1       Audio IRQ1 CNT                           0
51      INT     1       Audio IRQ2 CNT                           0
52      INT     1       Audio HPL Offset                         314
53      INT     1       Audio HPR Offset                         312
54      ENUM    1       Audio_Debug_Setting                      Off
55      ENUM    1       Audio_Ipoh_Setting                       Off
56      ENUM    1       Audio_I2S1_Setting                       Off
57      ENUM    1       Audio_HPL_Calibration                    false
58      ENUM    1       Audio_HPR_Calibration                    false
59      ENUM    1       Pmic_Anc_Switch                          ANCON
60      INT     1       Audio HP ImpeDance Setting               16
61      INT     1       Audio FM I2S Volume                      65536
62      ENUM    1       I2S low Jitter function                  Off

2.开启录音机。执行tinymix,得到录音状态下控件情况

tb8163p3_64_bsp:/ # tinymix
tinymix
Mixer name: 'mt-snd-card'
Number of controls: 63
ctl     type    num     name                                     value

0       ENUM    1       Audio_Amp_R_Switch                       Off
1       ENUM    1       Audio_Amp_L_Switch                       Off
2       ENUM    1       Voice_Amp_Switch                         Off
3       ENUM    1       Speaker_Amp_Switch                       Off
4       ENUM    1       Headset_Speaker_Amp_Switch               Off
5       ENUM    1       Ext_Speaker_Amp_Switch                   Off
6       ENUM    1       Headphone_Speaker_Mux                    Speaker
7       ENUM    1       Headset_PGAL_GAIN                        (null)
8       ENUM    1       Headset_PGAR_GAIN                        (null)
9       ENUM    1       Handset_PGA_GAIN                         -21Db
10      ENUM    1       Lineout_PGAR_GAIN                        8Db
11      ENUM    1       Lineout_PGAL_GAIN                        8Db
12      ENUM    1       Ext_Amp_Gain                             6dB
13      ENUM    1       AUD_CLK_BUF_Switch                       Off
14      ENUM    1       Audio_Preamp1_Switch                     IN_ADC1
15      ENUM    1       Audio_Preamp2_Switch                     IN_ADC3
16      ENUM    1       Audio_ADC_1_Switch                       On
17      ENUM    1       Audio_ADC_2_Switch                       On
18      ENUM    1       Audio_ADC_3_Switch                       Off
19      ENUM    1       Audio_ADC_4_Switch                       Off
20      ENUM    1       Audio_PGA1_Setting                       18Db
21      ENUM    1       Audio_PGA2_Setting                       18Db
22      ENUM    1       Audio_PGA3_Setting                       -6Db
23      ENUM    1       Audio_PGA4_Setting                       -6Db
24      ENUM    1       Audio_MicSource1_Setting                 ADC1
25      ENUM    1       Audio_MicSource2_Setting                 ADC1
26      ENUM    1       Audio_MicSource3_Setting                 ADC1
27      ENUM    1       Audio_MicSource4_Setting                 ADC1
28      ENUM    1       Audio_MIC1_Mode_Select                   ACCMODE
29      ENUM    1       Audio_MIC2_Mode_Select                   ACCMODE
30      ENUM    1       Audio_MIC3_Mode_Select                   ACCMODE
31      ENUM    1       Audio_MIC4_Mode_Select                   ACCMODE
32      ENUM    1       SineTable_DL_DAC                         Off
33      ENUM    1       SineTable_UL_ADC                         Off
34      ENUM    1       Codec_Loopback_Setting                   OFF
35      ENUM    1       Speech_MD_USAGE                          Off
36      ENUM    1       Audio_Hdmi_SideGen_Switch                Off
37      ENUM    1       AP_Loopback_Select                       AP_LOOPBACK_NONE
38      ENUM    1       Audio_i2s0_SideGen_Switch                Off
39      ENUM    1       Audio_i2s0_hd_Switch                     Off
40      ENUM    1       Audio_ExtCodec_EchoRef_Switch            Off
41      INT     1       Audio Mrgrx Volume                       65536
42      ENUM    1       cmb stub Audio Control                   CMB_STUB_AIF_3
43      ENUM    1       Audio_I2S0dl1_hd_Switch                  Off
44      ENUM    1       Audio_FMTX_hd_Switch                     On
45      ENUM    1       Audio_SideGen_Switch                     OFF
46      ENUM    1       Audio_SideGen_SampleRate                 48K
47      ENUM    1       Audio_SideGen_Amplitude                  1/128
48      ENUM    1       Audio_Sidetone_Switch                    Off
49      ENUM    1       Audio_Mode_Switch                        Normal_Mode
50      INT     1       Audio IRQ1 CNT                           2048
51      INT     1       Audio IRQ2 CNT                           960
52      INT     1       Audio HPL Offset                         314
53      INT     1       Audio HPR Offset                         312
54      ENUM    1       Audio_Debug_Setting                      Off
55      ENUM    1       Audio_Ipoh_Setting                       Off
56      ENUM    1       Audio_I2S1_Setting                       Off
57      ENUM    1       Audio_HPL_Calibration                    false
58      ENUM    1       Audio_HPR_Calibration                    false
59      ENUM    1       Pmic_Anc_Switch                          ANCON
60      INT     1       Audio HP ImpeDance Setting               16
61      INT     1       Audio FM I2S Volume                      65536
62      ENUM    1       I2S low Jitter function                  Off

比较不同处


1639979583(1).png

经过分析,主要是ctl id 14 15 16 17 20 21需要在录音时候打开。

由上述分析后,我们只需要切换14 15 16 17 20 21即可录音

1.执行如下命令

设置adc

tinymix 14 1
tinymix 15 3

开启adc

tinymix 16 1
tinymix 17 1

设置增益

tinymix 20 4
tinymix 21 4
2.tinycap录音
tinycap /sdcard/aud-test.wav -D 0 -d 1 -c 2 -b 16 -r 16000

OK~

你可能感兴趣的:(MTK Android tinycap录制音频)