OpenAL - 如何播放无衰减的音效?

时间:2011-03-01 21:44:45

标签: openal

我在我的iPhone项目中使用OpenAL创建的声音会在离听众更远的地方减弱。

然而 - 我也想播放一些不会被距离衰减的声音效果。

到目前为止,我通过使用不会衰减的立体声来解决这个问题。但是现在我添加了大量的声音,这需要相当大的空间 - 所以我希望它们是单声道的,现在再次出现问题,它们会被距离衰减。

我的下一个解决方案是将播放语音样本的源的“AL_MIN_GAIN”设置为1.0,但这似乎仅适用于模拟器,而不是设备上。

是否有其他方法可以播放openAL不会因距离而减弱的声音效果?

3 个答案:

答案 0 :(得分:5)

alSourcei (sourceName, AL_SOURCE_RELATIVE, AL_TRUE);
alSource3f (sourceName, AL_POSITION, 0.0f, 0.0f, 0.0f);
alSource3f (sourceName, AL_VELOCITY, 0.0f, 0.0f, 0.0f);

然后来源应该留在听众的位置。

答案 1 :(得分:1)

您可以尝试打开没有距离模型的第二个上下文。我不确定iOS是否支持多个上下文但是......

或者,只需将您的“声音”源保持在与收听者相同的位置。

答案 2 :(得分:0)

只需使用

-EB

alSourcei(id, AL_DIRECT_CHANNELS_SOFT, 1) 宏在AL_DIRECT_CHANNELS_SOFT

中定义