我尝试在我的编码中播放音乐文件,但失败了。我的音乐文件位于保存 .cpp 文件的同一文件夹中。
有人能帮我吗?
我的代码是:
#include <iostream>
#include <windows.h>
int main() {
PlaySound("kenny g.WAV", NULL, SND_ASYNC);
}
您需要使用绝对路径,确保您正在发送文件名(使用 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
应该是这样。告诉我,谢谢!
尝试将 -lwinmm 添加到您的编译器设置中。它对我有用。只需在编译器选项区域中键入它即可。
你可以使用绝对路径并检查它是否是路径错误?
Ex: PlaySound("C:\\kenny g.WAV", NULL, SND_ASYNC);
int main() {
PlaySound("kenny g.WAV", NULL, SND_ASYNC);
}
使用该SND_ASYNC
标志,您的程序可以(并且它将)立即终止!
先试试看PlaySound("kenny g.WAV", NULL, SND_SYNC);
是否有效。
您可以通过 PlaySound(TEXT("SystemStart"), NULL, SND_ALIAS); 进行测试
说到路径,如果路径不是绝对路径,您的数据文件应该是可执行文件所在的位置,而不是源文件所在的位置。
是的,这个问题在9 年前就被问过了;)
以防万一还没有解决!您需要包含前面评论中提到的两个头文件,将项目链接到所需的库并将声音文件与您的 .exe 文件放在同一文件夹中(以防您未使用完整路径)
试试这个对我有用的代码。另外对于 code::Block 在链接器设置中使用 winmm。
#include <iostream>
#include <windows.h>
#include <MMSystem.h>
int main(){
PlaySound(TEXT("your file path.wav") , NULL , SND_SYNC) ;
return 0;
}