我尝试在我的编码中播放音乐文件,但失败了。我有我的音乐文件在同一个文件夹中保存。cpp文件。有人能帮帮我吗我的代码是:
#include <iostream> #include <windows.h> int main() { PlaySound("kenny g.WAV", NULL, SND_ASYNC); }
qmb5sa221#
您需要使用绝对路径,确保您正在发送文件名(使用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应该是这样让我知道,谢谢!
8ljdwjyq2#
尝试添加-lwinmm到您的编译器设置的东西。对我很有效。只要在编译器选项区输入它就可以了。
qmb5sa223#
你能使用绝对路径并检查它是否是路径错误吗?
Ex: PlaySound("C:\\kenny g.WAV", NULL, SND_ASYNC);
nimxete24#
int main() { PlaySound("kenny g.WAV", NULL, SND_ASYNC); }
有了SND_ASYNC标志,你的程序就可以(而且一定会)立即终止!先试试PlaySound("kenny g.WAV", NULL, SND_SYNC);,看看它是否有效。
SND_ASYNC
PlaySound("kenny g.WAV", NULL, SND_SYNC);
lkaoscv75#
说到路径,如果路径不是绝对的,数据文件应该在可执行文件所在的位置,而不是源文件所在的位置。是的,这个问题在9年前已经是asked了;)
c9x0cxw06#
可以通过PlaySound(TEXT(“SystemStart”),NULL,SND_ALIAS)进行测试;
dly7yett7#
以防万一它还没有解决!您需要包括前面的注解中提到的两个头文件,将项目链接到所需的lib并将声音文件与您的.exe文件放在同一个文件夹中(以防您没有使用完整路径)
xoefb8l88#
试试这个代码,它对我有用。对于代码::块,请在链接器设置中使用winmm。
#include <iostream> #include <windows.h> #include <MMSystem.h> int main(){ PlaySound(TEXT("your file path.wav") , NULL , SND_SYNC) ; return 0; }
2guxujil9#
我也面临着同样的问题。他们说的都是正确的,但除非你删除文件名中的空格,否则它不会播放。让它像test.wav一样,它就会工作。
9条答案
按热度按时间qmb5sa221#
您需要使用绝对路径,确保您正在发送文件名(使用SND_FILENAME标志),并暂停程序足够长的时间以播放声音文件(例如,使用getchar())。您需要在项目设置中链接winmm.lib库,并在标题中#include windows. h和mmsystem. h。
API:http://msdn.microsoft.com/en-us/library/ms712879(VS.85).aspx
应该是这样让我知道,谢谢!
8ljdwjyq2#
尝试添加-lwinmm到您的编译器设置的东西。对我很有效。只要在编译器选项区输入它就可以了。
qmb5sa223#
你能使用绝对路径并检查它是否是路径错误吗?
nimxete24#
有了
SND_ASYNC
标志,你的程序就可以(而且一定会)立即终止!先试试
PlaySound("kenny g.WAV", NULL, SND_SYNC);
,看看它是否有效。lkaoscv75#
说到路径,如果路径不是绝对的,数据文件应该在可执行文件所在的位置,而不是源文件所在的位置。
是的,这个问题在9年前已经是asked了;)
c9x0cxw06#
可以通过PlaySound(TEXT(“SystemStart”),NULL,SND_ALIAS)进行测试;
dly7yett7#
以防万一它还没有解决!您需要包括前面的注解中提到的两个头文件,将项目链接到所需的lib并将声音文件与您的.exe文件放在同一个文件夹中(以防您没有使用完整路径)
xoefb8l88#
试试这个代码,它对我有用。对于代码::块,请在链接器设置中使用winmm。
2guxujil9#
我也面临着同样的问题。他们说的都是正确的,但除非你删除文件名中的空格,否则它不会播放。让它像test.wav一样,它就会工作。