【发布时间】:2014-06-07 00:24:10
【问题描述】:
我正在创建自己的闹钟,我想使用 c/c++ 播放自己的音乐文件。我能找到的唯一可以播放任何东西的 C++ 函数是 PlaySound(),但我似乎无法让它工作,而且我不确定我做错了什么。我已经包含了“Winmm.lib”,它可以让我播放默认声音,但现在我正在尝试播放我的音乐文件。 (以 wma 格式)。
这是我目前的代码:
#include <Windows.h>
int main(){
PlaySound(TEXT("test.wma"), NULL, SND_FILENAME);
return 0;
}
我还在其中添加了 SND_NODEFAULT 标志,这样我就可以停止听到默认声音了。
【问题讨论】:
-
“似乎无法让它工作”是什么意思?发生什么了?它有任何声音吗?该函数是否返回错误(您未在此处检查)?也只是把它扔在那里,但很容易有other C++ functions可以播放媒体文件。
-
可能 test.wma 不在您程序的当前目录中,因此 PlaySound() 函数找不到它。作为测试,请尝试提供文件的完整路径,例如类似 PlaySound(TEXT("C:\\Users\\Vince\\MySoundsFolder\\test.wma"), NULL, SND_FILENAME);
-
考虑 C++ 的 Stk 声音库
-
int ret = GetLastError();在 playsound() 语句之后写一行。并检查 ret 的值。