适用于Android的Tinyalsa / ALSA调整。 arecord只记录噪音或没有

时间:2014-01-21 13:36:32

标签: android linux audio audio-recording alsa

我已经从Google Play安装了Alsamixer。

Gadget是三星Galaxy S3。

它有一个声卡(索引为0)和4个设备(0-3)。 设备列表(来自/proc/asound/devices)如下:

 0: [ 0]   : control
16: [ 0- 0]: digital audio playback
17: [ 0- 1]: digital audio playback
18: [ 0- 2]: digital audio playback
19: [ 0- 3]: digital audio playback
24: [ 0- 0]: digital audio capture
25: [ 0- 1]: digital audio capture
26: [ 0- 2]: digital audio capture
27: [ 0- 3]: digital audio capture
33:        : timer

所以来自/dev/snd的pcms列表是

crwxrwxrwx system   audio    116,   0 2014-01-16 12:56 controlC0
crwxrwxrwx system   audio    116,  24 2014-01-16 12:56 pcmC0D0c
crwxrwxrwx system   audio    116,  16 2014-01-16 12:56 pcmC0D0p
crwxrwxrwx system   audio    116,  25 2014-01-16 12:56 pcmC0D1c
crwxrwxrwx system   audio    116,  17 2014-01-16 12:56 pcmC0D1p
crwxrwxrwx system   audio    116,  26 2014-01-16 12:56 pcmC0D2c
crwxrwxrwx system   audio    116,  18 2014-01-16 12:56 pcmC0D2p
crwxrwxrwx system   audio    116,  27 2014-01-16 12:56 pcmC0D3c
crwxrwxrwx system   audio    116,  19 2014-01-16 12:56 pcmC0D3p
crwxrwxrwx system   audio    116,  33 2014-01-16 12:56 timer

alsa_aplay可以播放声音,但是当我尝试录制它时,只会记录噪音或空虚。 通过实验我发现声音只能用第3个设备“记录”,所以通话是:

alsa_aplay -C -D hw:0,3 -r 44100 -f S16_LE -c 1 -d 2 /foo.wav

当指定hw:0,1或其他时,我得到“pcm_read:读取错误:无效参数”。

我们尝试了不同的采样率和其他参数。

当我尝试使用C代码(jni)进行录制时,会发生同样的事情。

对于设备0-2,它有运行时错误。 设备3在pcm_read功能中无限记录空虚。

我们使用tinyalsa。

此外,我尝试从Alsamixer应用列表中管理设备,我将其中的大部分设置为100%(不知道哪个留在录制器中,所以设置全部)但没有效果。

感谢您的回复。

0 个答案:

没有答案