FMOD_CHANNEL_FREE未定义,不同版本的fmod?

时间:2013-09-30 22:46:12

标签: c++ visual-studio-2012 fmod

我正在尝试使用FMOD,visual studio 2012和c ++为我的应用添加声音。我得到了最新版本(1.02)并安装了它。一切似乎工作正常,但(varibles?)如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,卸载,重新安装,谷歌让我失望。如果它有助于channel_free spot中所需的参数是FMOD :: ChannelGroup

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

2 个答案:

答案 0 :(得分:2)

随着从FMOD Ex到FMOD Studio的更改,一些API已被修改,就是这种情况。 FMOD Ex版本的System :: playSound中的第一个参数已被删除,默认行为现在始终为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);

答案 1 :(得分:0)

他们没有切换,你看看头文件了吗?第二个参数是指向通道组的指针,你试图将一个整数传递给它?

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