使用资源文件中的直接显示播放音频

Playing audio with directshow from resource file

本文关键字:显示 播放 音频 资源 源文件      更新时间:2023-10-16

我目前正在使用Scripthook C++为侠盗猎车手IV编写脚本模组。我一直在使用此模板播放音频文件: 简单C++ MP3播放器类

我的问题始于尝试使用资源中的文件。我不知道如何加载它们。

每次我尝试使用我的代码从资源加载声音时,游戏都会崩溃。已经花了几个小时浏览谷歌关于如何从资源播放 DirectShow 音频而没有任何结果。

资源文件内部:

(resource.h)  #define WAV_Sound            106
(resource.rc) WAV_Sound                    RCDATA                  "MySound.wav"

从硬盘加载文件工作正常

Load(TEXT("MySound.wav"));

但是当我尝试其中之一时,游戏崩溃:

// Load from resource #1
    LPCWSTR file = MAKEINTRESOURCE(WAV_Sound);
    Load(file);
// Load from resource #2
    Load((LPCWSTR) WAV_Sound);

希望有人可以帮助我,谢谢!

Microsoft建议使用DirectX Audio为开发游戏提供多层接口,即XAudio2,X3DAudio,XACT,...等,它们在2D/3D游戏环境中处理声音效果非常强大。这是链接 http://msdn.microsoft.com/en-us/library/ee415737%28v=vs.85%29

请下载并安装 DirectX 软件开发工具包,并找到"XAudio2BasicSound"示例,从文件或资源或 dll 中打开波形文件并使用 IXAudio2 界面播放,这是一个非常简单的示例,但下一步您可以为您的游戏添加音效。