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

OpenAL: how to play multiple sounds at the same time and mix them?

本文关键字:声音 混合 何同时 播放 OpenAL      更新时间:2023-10-16

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

那么,我如何同时播放多个声音呢?

每个声音需要一个声源。

缓冲器保存原始声音样本,并且可以同时馈送一个或多个源。倾听者定义了你的"耳朵"在哪里(只有一个!)源是声音的单个实例,给定空间中的位置、音量、从中提取样本的缓冲区等等。

所以,要同时播放两个声音,你需要两个声源