2013-09-30 48 views
0

我正在嘗試使用FMOD,visual studio 2012和C++將聲音添加到我的應用程序中。我獲得了最新版本(1.02)並安裝了它。一切似乎工作正常,但(FMOD_CHANNEL_FREE和FMOD_CHANNEL_REUSE未定義(varibles?))。與我交談過的每個人都有這個問題,從來沒有解決過這個問題,網上的每個人似乎都沒有這個問題。我注意到的另一件事是,playSound的參數已經切換。 對我來說:FMOD_CHANNEL_FREE未定義,不同版本的fmod?

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

任何想法?如果你需要更多的代碼,請發表評論(不回答),我會遵守。

回答

0

他們沒有切換,你看看頭文件嗎?第二個參數是一個指向通道組的指針,並且您正試圖將一個整數傳遞給它?

無論如何,免費/重用標誌都不見了,只需刪除它們即可。內部渠道總是「免費」的。

+0

你能給playsound的作品的例子嗎? – user2832863

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);