1、snd_pcm_open,打开句柄。
2、配置参数,可能用到的接口:snd_pcm_hw_params_alloca、snd_pcm_hw_params_any、snd_pcm_hw_params_set_rate_near、snd_pcm_hw_params_set_format、snd_pcm_hw_params_set_access、snd_pcm_hw_params_set_channels、snd_pcm_hw_params_set_period_size_near、snd_pcm_hw_params_set_buffer_size_near、snd_pcm_hw_params。
3、读写:snd_pcm_writei、snd_pcm_readi。
注意点:
1、根据要实现的功能创建句柄,snd_pcm_open参数SND_PCM_STREAM_CAPTURE与snd_pcm_readi相对应,SND_PCM_STREAM_PLAYBACK与snd_pcm_writei相对应。
2、配置参数,snd_pcm_hw_params_set_format中的第三个参数与对应文件的格式相对应,即SND_PCM_FORMAT_A_LAW对应G711数据,SND_PCM_FORMAT_S16_LE与16位的小端PCM格式数据相对应。
3、有些时候会有pcm数据与G711数据,G722数据与pcm数据之间相互转换的需要。但是需要注意的是一般而言G722数据一个包的大小是120,因此读取文件往解码器送数据时需要将大小改为120.而G711数据一个包大小为320,因此送解码器时需要将大小改为320.
下篇将pcm g711 和aac 音频格式
http://blog.csdn.net/zybasjj/article/details/8768544