2

我正在使用 OpenSL ES 在我的项目中播放音乐和声音。我使用原生音频样本作为开始,它可以很好地再现背景音乐和单个声音,但是当我尝试同时再现两个或多个声音时,声音不会同时再现,因为声音缓冲区在播放时排队播放所有以前的缓冲区。

然后,经过一番研究,我找到了两种解决方法,简而言之:

  1. 使用多个音频播放器(因此缓冲队列)来重现声音。
  2. 将音效缓冲区混合到一个缓冲区中,然后加入队列。

我的问题是: 您认为最好的方法是什么?我忽略了更好的方法吗?

提前致谢。

4

2 回答 2

1

我也在使用 OpenSL ES。刚开始有点复杂...

无论如何,您可以创建任意数量的 ObjectPlayer,始终记住对象的最大数量是 32。

所以,理想情况下,如果你想同时播放 4 个声音,你需要 4 个 PlayerObject 和 1 个 OutputMixObject

希望你能找到有用的

于 2015-03-08T18:16:58.730 回答
0

这是一种完全不同的方法:我正在使用SoundPool来执行此操作:它非常简单,而且效果很好。

于 2012-05-07T09:51:20.827 回答