FMOD_CHANNEL_FREE未定义的不同版本的 fmod



我正在尝试使用FMOD,Visual Studio 2012和c ++为我的应用程序添加声音。我得到了最新版本(1.02)并安装了它。一切似乎都很好,但(可变?)像FMOD_CHANNEL_FREE和FMOD_CHANNEL_REUSE是不确定的。与我交谈过的每个人都有这个问题,但从未解决过,网上的每个人似乎都没有这个问题。我注意到的另一件事是播放声音的参数已切换。给我的:

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

其他地方

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

我按照安装的说明进行操作,包括fmod.hpp和fmod_errors.h,卸载,重新安装,谷歌让我失望了。如果它有助于channel_free点所需的参数是 FMOD::ChannelGroup

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

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

新的第二个参数用于指定要在其中播放此通道的 FMOD::ChannelGroup。不需要设置此项,如果要在主通道组中播放声音的 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);
<</div> div class="one_answers">它们

没有切换,你看过头文件吗? 第二个参数是指向频道组的指针,您正在尝试向其传递整数?

无论如何,免费/重用标志都消失了,只需删除它们即可。 内部渠道始终是"免费"的。

最新更新