使用arecord、aplay 实现录音和播放

1、arecord 录音

1)查看录音设备

输入 adb shell

输入arecord –l

C:\Users\Administrator>adb shell
/ # arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: xxsndcard [xx-snd-card], device 1: TDM_Capture (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: xxsndcard [xx-snd-card], device 2: DMIC_Capture (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: xxsndcard [xx-snd-card], device 3: AWB_Record (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0 

通过如上命令可以得到可用于录音的设备,比如card x device x

2)录音

根据上面的信息,如果我们要用TDM_Capture 录音,可以输入如下命令

arecord -Dhw:0,1 -d 10 -f cd -r 44100 -c 2 -t wav test.wav

参数解析
-D 指定了录音设备,0,1 是card 0 device 1的意思,也就是TDM_Capture
-d 指定录音的时长,单位时秒
-f 指定录音格式,通过上面的信息知道只支持 cd cdr dat 
-r 指定了采样率,单位时Hz
-c 指定channel 个数
-t 指定生成的文件格式


2、aplay 播放

1)查看播放音频设备
输入 adb shell

输入 aplay –l

C:\Users\Administrator>adb shell
/ # aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: xxsndcard [xx-snd-card], device 0: I2S8CH Playback (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: xxsndcard [xx-snd-card], device 6: DL1_Playback (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
通过如上命令可以得到可用于播放声音的设备,比如card x device x

2)播放音频

输入aplay test.wav

/data # aplay test.wav
Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
/data #

直接输入aplay test.wav 就可以播放wav音频文件了,不需要指定太多的参数,因为wav文件的头部会保存一些声音格式信息,比如pcm格式 ,采样率,channel个数等,所以不指定这些参数也能播放。

如果是直接播放pcm数据,则需要指定pcm格式 、采样率、channel个数等。


你可能感兴趣的:(alsa)