使用资源文件中的直接显示播放音频
Playing audio with directshow from resource file
我目前正在使用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 界面播放,这是一个非常简单的示例,但下一步您可以为您的游戏添加音效。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 字符串-C++后显示的随机字符
- 继承期间显示未知行为的子类
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 程序崩溃并显示"std::out_of_range"错误
- SFML纹理像播放器
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 为什么在C的循环中使用printf的Rust代码不显示输出,而在C++的循环中显示std::cout
- 从数据库实时显示QT c++中的数据
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 显示错误输出的简单数组排序程序
- Qt自定义QPush按钮未显示在布局上
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 如何在不显示媒体播放器的情况下在libVLC中拍摄快照
- 使用 Struct 进行 mp3 播放器模拟C++(不需要播放 mp3 的唯一显示列表)
- EVR在播放前固定后在窗口上显示几个黑色框架
- 使用资源文件中的直接显示播放音频
- 如何从视频播放器的辅助线程在主窗口中显示