如何在C ++ PlaySound使用Windows API?(How to PlaySound i

2019-07-28 02:39发布

我尝试在我的编码播放音乐文件,但没有成功。 我在其中保存.cpp文件相同的文件夹我的音乐文件。

有人能帮我吗?

我的代码是:

#include <iostream>  
#include <windows.h>

int main() { 
    PlaySound("kenny g.WAV", NULL, SND_ASYNC);    
}

Answer 1:

您需要使用绝对路径,请确保您要发送的文件名(使用SND_FILENAME标志),并暂停该项目足够长的时间来播放声音文件(例如,使用的getchar())。 您需要在您的项目设置的WINMM.LIB库和WINDOWS.H的#include 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
这应该是它。 让我知道,谢谢!



Answer 2:

尝试添加-lwinmm到您的编译器设置啄。 它为我工作。 只需键入编译器选项区域,它会工作。



Answer 3:

你可以使用绝对路径,并检查它是否是路径错误?

Ex: PlaySound("C:\\kenny g.WAV", NULL, SND_ASYNC); 


Answer 4:

int main() { 
    PlaySound("kenny g.WAV", NULL, SND_ASYNC); 
}

随着SND_ASYNC标志程序可以(而且会)immediatelly终止!

尝试PlaySound("kenny g.WAV", NULL, SND_SYNC); 先来看看它是否工作。



Answer 5:

谈到路径,你的数据文件应该是在您的可执行文件,不要在您的源文件,如果路径不是绝对的。

和是的,这很问题已经被问 9年前)



Answer 6:

您可以通过PlaySound测试(TEXT( “SystemStart”),NULL,SND_ALIAS);



Answer 7:

万一它是未解决的呢! 您需要包括在以前的评论中提到的两个头文件,该项目链接到所需要的lib和在同一个文件夹中的声音文件作为您的.exe文件(如果你使用的不是完整路径)



Answer 8:

试试这个代码,它为我工作。 另外对于代码::块的连接器设置使用WINMM。

#include <iostream>  
#include <windows.h>
#include <MMSystem.h>
 int main(){
PlaySound(TEXT("your file path.wav") , NULL , SND_SYNC) ;
    return 0;
}


文章来源: How to PlaySound in C++ using Windows API?