利用C程序编写一个音频文件,内容为你好
时间: 2023-03-12 16:22:36 浏览: 27
shentu_神途脚本编写_游戏程序文件_
4星 · 用户满意度95%
如果你想在 C 语言中创建一个音频文件,可以使用 libsndfile 库。这个库支持读写多种格式的音频文件,包括 WAV、FLAC、AIFF 等。
下面是一个简单的程序,它会创建一个名为 "hello.wav" 的 WAV 文件,内容是一个 440Hz 的正弦波,持续 1 秒钟,采样率为 44100Hz:
```
#include <stdio.h>
#include <stdlib.h>
#include <sndfile.h>
#define SAMPLE_RATE 44100
#define DURATION 1
#define FREQUENCY 440
int main(int argc, char *argv[]) {
SF_INFO info = {0};
info.samplerate = SAMPLE_RATE;
info.channels = 1;
info.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16;
SNDFILE *snd_file = sf_open("hello.wav", SFM_WRITE, &info);
if (!snd_file) {
fprintf(stderr, "Error opening file: %s\n", sf_strerror(snd_file));
return 1;
}
float *sample_buffer = malloc(SAMPLE_RATE * sizeof(float));
if (!sample_buffer) {
fprintf(stderr, "Error allocating memory\n");
return 1;
}
for (int i = 0; i < SAMPLE_RATE; i++) {
sample_buffer[i] = sin(2 * M_PI * FREQUENCY * i / SAMPLE_RATE);
}
sf_count_t count = sf_write_float(snd_file, sample_buffer, SAMPLE_RATE);
if (count != SAMPLE_RATE) {
fprintf(stderr, "Error writing to file\n");
return 1;
}
sf_close(snd_file);
free(sample_buffer);
return 0;
}
```
运行这个程序之后,你就会在当前目录下得到一个名为 "hello.wav" 的文件。打开它,就能听到 "你好" 的声音。
希望这对你有帮助。
阅读全文