数据流向
数据
声卡采集音频数据 -----> WAV音频文件
伪代码:
确定录制的采样率,通道数等参数
打开PCM设备 snd_pcm_open()
设置PCM硬件参数
打开要保存数据的文件,先写入WAV文件的头部数据(关键点)
根据录音时长,计算出需要录制的周期数 total_periods
for (unsigned int i = 0; i < total_periods; i++)
{
读取声卡采集到的数据 snd_pcm_readi()
把从声卡读到的数据写到文件中 fwrite()
}
释放资源
相关函数声明
录音音频的函数
int RecordAudio(const char *filename, int duration)
filename : 保存数据的wav文件名
duration : 采集音频的时长(单位 / 秒)
设置PCM硬件参数:
static int set_hw_params(snd_pcm_t *pcmHandler, unsigned int sample_rate, unsigned short channels, unsigned short bits_per_sample)
写WAV头部数据
void write_wav_header(int fd, int sample_rate, int channels, int duration)
fd : 文件描述符
sample_rate : 采样率
channels : 通道数
duration : 采样时长
调用框架:
RecordAudio
{
...
set_hw_params()
write_wav_header()
...
while(1)
{

最低0.47元/天 解锁文章
570

被折叠的 条评论
为什么被折叠?



