使用OpenSL ES Android同时播放多种音效

时间:2012-05-07 08:22:16

标签: android android-ndk opensl

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

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

  
      
  1. 使用多个音频播放器(以及缓冲队列)来重现声音。
  2.   
  3. 将声音效果缓冲区混合到一个缓冲区中,然后排队。
  4.   

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

无论如何,你可以创建你想要的ObjectPlayer,永远记住对象的最大数量是32。

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

希望你能找到有用的

答案 1 :(得分:0)

这是一种完全不同的方法:我正在使用SoundPool来执行此操作:它非常简单且完美无缺。