OpenAL:如何同时播放多个声音并将它们混合?

时间:2011-04-22 22:23:06

标签: c++ openal

我之前使用过SDL_Mixer,它正确地完成了这项工作:当我按顺序播放一个单一功能的声音10次时,所有声音都会混合在一起。但是在OpenAL中,当我使用alSourcePlay()播放声音时,它只播放一个声音,而不会混合到之前的声音中。

那么,我怎么能同时播放超过1个声音呢?

1 个答案:

答案 0 :(得分:10)

每个声音需要一个音源。

缓冲区保存原始声音样本,并且可以一次或多次同时提供一个或多个源。听众定义了你的“耳朵”的位置(只有一个!)。源是声音的单个实例,给定空间中的位置,音量,从中提取样本的缓冲区等等。

因此,要同时播放2种声音,您需要2个声源。