C语言读取wav音频例子
时间: 2023-06-05 10:08:04 浏览: 61
可以使用C语言的wavlib库来读取wav音频文件。以下是一个简单的例子代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include "wavlib.h"
int main()
{
const char* filename = "audio.wav"; // 音频文件名
wavreader_t reader; // wav文件读取器
int16_t* buffer; // 缓冲区
int nframes; // 读取的帧数
int nsamples; // 读取的采样数
if (!wav_read_open(&reader, filename)) {
fprintf(stderr, "无法打开音频文件 %s\n", filename);
return 1;
}
nsamples = wav_get_num_samples(&reader);
buffer = (int16_t*) malloc(nsamples * sizeof(int16_t));
if (!buffer) {
fprintf(stderr, "无法分配缓冲区\n");
wav_read_close(&reader);
return 1;
}
nframes = wav_read_data(&reader, buffer, nsamples);
if (nframes < 0) {
fprintf(stderr, "无法读取音频数据\n");
free(buffer);
wav_read_close(&reader);
return 1;
}
printf("成功读取 %d 个采样\n", nframes * reader.num_channels);
wav_read_close(&reader);
free(buffer);
return 0;
}
```
该代码用到了wavlib库,可以通过Github进行下载。在使用时需要添加`wavlib.h`头文件并链接`wavlib`库。