如何使用Windows API在C++中播放声音?

11 c++ winapi playsound

我尝试在编码中播放音乐文件,但失败了.我将我的音乐文件放在保存.cpp文件的同一文件夹中.

有人能帮我吗?

我的代码是:

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

int main() { 
    PlaySound("kenny g.WAV", NULL, SND_ASYNC);    
}
Run Code Online (Sandbox Code Playgroud)

Lui*_*s B 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();
}
Run Code Online (Sandbox Code Playgroud)

API:http://msdn.microsoft.com/en-us/library/ms712879(VS.85).aspx
那应该是它.让我知道,谢谢!


小智 6

尝试将 -lwinmm 添加到您的编译器设置中。它对我有用。只需在编译器选项区域中输入它,它就会起作用。


aJ.*_*aJ. 2

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

Ex: PlaySound("C:\\kenny g.WAV", NULL, SND_ASYNC); 
Run Code Online (Sandbox Code Playgroud)