我在我的iPhone项目中使用OpenAL创建的声音会在离听众更远的地方减弱。
然而 - 我也想播放一些不会被距离衰减的声音效果。
到目前为止,我通过使用不会衰减的立体声来解决这个问题。但是现在我添加了大量的声音,这需要相当大的空间 - 所以我希望它们是单声道的,现在再次出现问题,它们会被距离衰减。
我的下一个解决方案是将播放语音样本的源的“AL_MIN_GAIN”设置为1.0,但这似乎仅适用于模拟器,而不是设备上。
是否有其他方法可以播放openAL不会因距离而减弱的声音效果?
答案 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