我尝试在编码中播放音乐文件,但失败了。我将我的音乐文件放在保存.cpp文件的同一文件夹中。
有人可以帮助我吗?
我的代码是:
#include <iostream>
#include <windows.h>
int main() {
PlaySound("kenny g.WAV", NULL, SND_ASYNC);
}
答案 0 :(得分:10)
您需要使用绝对路径,确保您发送文件名(使用SND_FILENAME标志),并暂停程序足够长时间播放声音文件(例如,使用getchar())。您需要在项目设置中链接winmm.lib库,并在标题中链接#include windows.h和mmsystem.h。
#include <windows.h>
#include <mmsystem.h>
int main() {
PlaySoundA((LPCSTR) "C:\\kenny g.WAV", NULL, SND_FILENAME | SND_ASYNC);
getchar();
}
API:http://msdn.microsoft.com/en-us/library/ms712879(VS.85).aspx
那应该是它。让我知道,谢谢!
答案 1 :(得分:4)
尝试将-lwinmm添加到编译器设置中。它对我有用。只需在编译器选项区域中键入它即可。
答案 2 :(得分:1)
您可以使用绝对路径并检查它是否是路径错误?
Ex: PlaySound("C:\\kenny g.WAV", NULL, SND_ASYNC);
答案 3 :(得分:1)
int main() {
PlaySound("kenny g.WAV", NULL, SND_ASYNC);
}
使用SND_ASYNC
标志,您的程序可以(并且它将)立即终止!
首先尝试PlaySound("kenny g.WAV", NULL, SND_SYNC);
,看它是否有效。
答案 4 :(得分:0)
说到路径,您的数据文件应该是可执行文件的位置,而不是源文件的位置,如果路径不是绝对的。
是的,9年前这个问题已经asked;)
答案 5 :(得分:0)
你可以通过PlaySound测试(TEXT(“SystemStart”),NULL,SND_ALIAS);
答案 6 :(得分:0)
以防万一尚未解决! 您需要包含前面注释中提到的两个头文件,将项目链接到所需的lib并将声音文件放在与.exe文件相同的文件夹中(如果您没有使用完整路径)
答案 7 :(得分:0)
试试这个代码对我有用。另外对于code :: Block在链接器设置中使用winmm。
#include <iostream>
#include <windows.h>
#include <MMSystem.h>
int main(){
PlaySound(TEXT("your file path.wav") , NULL , SND_SYNC) ;
return 0;
}