c++ - FMOD_CHANNEL_FREE 未定义,fmod 版本不同?

标签 c++ visual-studio-2012 fmod

我正在尝试使用 FMOD、Visual Studio 2012 和 C++ 向我的应用程序添加声音。我获得了最新版本(1.02)并安装了它。一切似乎都工作正常,但(变量?)如 FMOD_CHANNEL_FREE 和 FMOD_CHANNEL_REUSE 未定义。我交谈过的每个人都遇到过这个问题,但从未解决过,网上的每个人似乎都没有这个问题。我注意到的另一件事是 playSound 的参数已切换。 对我来说:

 system->playSound(sound->second, FMOD_CHANNEL_FREE, false, 0);

其他地方

system->playSound( FMOD_CHANNEL_FREE, sound->second, false, 0);

我按照安装说明进行操作,包括 fmod.hpp 和 fmod_errors.h,卸载后重新安装,但 google 失败了。如果有帮助,channel_free 点中所需的参数是 FMOD::ChannelGroup

有什么想法吗?如果您需要更多代码,请发表评论(而不是回答),我会遵守。

最佳答案

随着从 FMOD Ex 更改为 FMOD Studio,一些 API 已被修改,这就是一个这样的例子。 System::playSound 的 FMOD Ex 版本中的第一个参数已被删除,默认行为现在始终为 FMOD_CHANNEL_FREE。

新的第二个参数用于指定要在其中播放该 channel 的 FMOD::ChannelGroup。您不需要设置此参数,如果您希望在主 channel 组中播放声音的 FMOD Ex 行为,请指定 NULL。

FMOD Studio 的正确用法是:

FMOD::System *system = NULL; // create and init not shown
FMOD::Sound *sound = NULL; // create not shown

FMOD::Channel *channel = NULL;
FMOD_RESULT result = system->playSound(sound, NULL, false, &channel);

关于c++ - FMOD_CHANNEL_FREE 未定义,fmod 版本不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19105190/

相关文章:

c# - 无法使用 Xamarin.Android/Xamarin.iOS 创建可移植类库项目

c++ - VS2012中Linker和Librarian的区别

audio - FMOD channel 设置音量不起作用

c++ - 在运行时链接外部库

c++ - CRTP Singleton 不完整类型或非文字类型

c++ - 返回不可复制常量值的函数的不直观 RVO?

c++ - GL_FRAMEBUFFER_SRGB 是否仅适用于前/后缓冲区?

c++ - VS2012 如何通过 IntelliSense 显示标准 C++ 库的文档?

c++ - 如果 x 和 y 分别是值为 1 和 2 的两个整数。语句 y= - -x-- 是什么意思?

c++ - FMOD - 无法同时播放声音