用c语言播放.wav文件
play .wav file using c language
我被要求用C语言播放.wav文件,我使用的编译器是Devcpp。
我正在尝试使用函数 PlaySound()
如下:
PlaySound("C:/Users/wavfiles/13.1.wav", NULL, SND_FILENAME);
如果我像这样直接输入目录到函数中,是可以成功播放声音的。
但是,我想将目录设置为变量。我创建了一个包含目录列表的文本文件并提取我想要的文件,然后将其放入 PlaySound()
函数中。这是我的部分代码:
FILE *fw;
char addr[1000]
char schapter[50];
while(fgets(addr, 1000, fw) != NULL) {
if((strstr(addr, schapter)) != NULL) {
printf("\n%s", addr);
PlaySound(addr, NULL, SND_FILENAME);
}
}
在这种情况下,目录分配给addr
(addr = "C:/Users/wavfiles/13.1.wav"
),然后我将addr
放入PlaySound()
,但它不起作用。
我在这个问题上卡了很久,无法继续。
如果有人能给我建议或解决方案,我将不胜感激。
谢谢你。
fgets()
返回的字符串包含终端换行符。您需要删除它才能获取文件名。
一个简单的方法是使用 strchr()
定位换行符:
while (fgets(addr, 1000, fw) != NULL) {
char *nl = strchr(addr, '\n');
if (nl) *nl = 0;
…
}
我被要求用C语言播放.wav文件,我使用的编译器是Devcpp。
我正在尝试使用函数 PlaySound()
如下:
PlaySound("C:/Users/wavfiles/13.1.wav", NULL, SND_FILENAME);
如果我像这样直接输入目录到函数中,是可以成功播放声音的。
但是,我想将目录设置为变量。我创建了一个包含目录列表的文本文件并提取我想要的文件,然后将其放入 PlaySound()
函数中。这是我的部分代码:
FILE *fw;
char addr[1000]
char schapter[50];
while(fgets(addr, 1000, fw) != NULL) {
if((strstr(addr, schapter)) != NULL) {
printf("\n%s", addr);
PlaySound(addr, NULL, SND_FILENAME);
}
}
在这种情况下,目录分配给addr
(addr = "C:/Users/wavfiles/13.1.wav"
),然后我将addr
放入PlaySound()
,但它不起作用。
我在这个问题上卡了很久,无法继续。 如果有人能给我建议或解决方案,我将不胜感激。 谢谢你。
fgets()
返回的字符串包含终端换行符。您需要删除它才能获取文件名。
一个简单的方法是使用 strchr()
定位换行符:
while (fgets(addr, 1000, fw) != NULL) {
char *nl = strchr(addr, '\n');
if (nl) *nl = 0;
…
}