在C语言中,我PlaySound
不扔的......而是打我想要的文件的任何错误,它就会发出蜂鸣声。
有什么建议?
我试过了 :
PlaySound("song1.wav", NULL, SND_ALIAS | SND_APPLICATION);
和:
PlaySound("song1.wav", NULL, SND_FILENAME);
但我得到了同样的结果。
在C语言中,我PlaySound
不扔的......而是打我想要的文件的任何错误,它就会发出蜂鸣声。
有什么建议?
我试过了 :
PlaySound("song1.wav", NULL, SND_ALIAS | SND_APPLICATION);
和:
PlaySound("song1.wav", NULL, SND_FILENAME);
但我得到了同样的结果。
而不是使用相对路径喜欢你这样做:
PlaySound("song1.wav", NULL, SND_FILENAME);
使用绝对路径,如:
PlaySound("F:\\path\\to\\your\\song\\song1.wav", NULL, SND_FILENAME);
从PlaySound API描述,报价在msdn.microsoft.com:
PlaySound
搜索声音文件以下目录:当前目录; Windows目录; Windows系统目录; 在列出的目录PATH
环境变量; 和目录列表中选择一个网络中的映射。如果函数无法找到指定的声音和
SND_NODEFAULT
没有指定标志,PlaySound
使用默认的系统事件的声音,而不是(在你的情况BEEP)。如果函数可以发现无论是系统默认的表项,也不默认的声音,它不会发出声音并返回
FALSE
。
因此,添加文件目录路径到PATH
环境变量窗口。 这应该解决您的问题。
我是在与像OP的同样情况的麻烦和发现解决方案适合我。 我的解决办法是消除wav文件的元数据。
邮报(日语)
参照后,PlaySound()API无法播放出口与国内知名的音频工具,一些wav文件。 (如使用ProTools,CUBASE,StudioOne等。)
和消除元数据使得它的工作。 在博客中,他开了一些“麻烦”波形文件与SoundEngine(日本) ,只是“另存为”的新文件,以消除WAV RIFF元信息。