0

我目前正在使用 Scripthook C++ 为 Grand Theft Auto IV 编写脚本模块。我一直在使用这个模板播放音频文件:Simple C++ MP3 Player Class

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

每次我尝试使用我的代码从资源中加载声音时,游戏都会崩溃。已经花了几个小时浏览谷歌关于如何从资源中播放 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);

希望有人能帮帮我,谢谢!

4

1 回答 1

0

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

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

于 2012-08-17T18:05:28.220 回答