我有问题用fmod来配合ptich。我可以使用channel :: setfrequency来实现它,但我需要在更大的sfx上使用它,因此需要精确[没有速度变化]与DSP。但是我似乎无法应用过滤器。
FMOD::DSP* dsp;
result = m_soundSystem->createDSPByType(FMOD_DSP_TYPE_PITCHSHIFT, &dsp);
dsp->setParameter(0, 2.0f);
result = m_soundChannels[i]->addDSP(dsp, 0);
那里什么也没发生。这段代码在我的自定义播放功能中,并且在我播放声音之前执行(我将暂停加载为true,然后进行更改)。 这两个函数都不会将任何错误抛出到结果变量中。那怎么了? :S
答案 0 :(得分:1)
试试这个:
FMOD::DSP* dsp;
result = m_soundSystem->createDSPByType(FMOD_DSP_TYPE_PITCHSHIFT, &dsp);
result = m_soundChannels[i]->addDSP(dsp, 0);
dsp->setParameter(FMOD_DSP_PITCHSHIFT_PITCH, 2.0f);
答案 1 :(得分:0)
您提到上面的代码是在播放声音之前执行的。您必须在System :: playSound之后调用Channel :: addDSP,否则FMOD :: Channel将无效。