将 wav 加载到内存中,然后使用 Win32 API 异步播放声音

Sim*_*ley 3 c++ audio winapi

我正在使用 C++ 和 Win32 API 编写一个简单的游戏。我想在初始化阶段(游戏开始之前)将一些音效加载到内存中。然后我希望能够在游戏过程中异步触发这些声音。

我研究了一些推荐 mmlib(PlaySound)的帖子,这有效,但示例似乎每次都从文件加载,如下所示:

PlaySound("rocket_launch.wav", NULL, SND_FILENAME | SND_ASYNC);
Run Code Online (Sandbox Code Playgroud)

我想在开始时将声音加载到内存中,然后随时播放它们。希望我不需要使用资源文件。

我怎样才能做到这一点?

Bud*_*ddy 6

文档说传入以PlaySound 指示SND_MEMORY第一个参数指向内存缓冲区。

因此首先将文件加载到内存中,然后将指针传入缓冲区,并将标志换出SND_FILENAME为标志SND_MEMORY