我正在使用 OpenSL ES 在我的项目中播放音乐和声音。我使用原生音频样本作为开始,它可以很好地再现背景音乐和单个声音,但是当我尝试同时再现两个或多个声音时,声音不会同时再现,因为声音缓冲区在播放时排队播放所有以前的缓冲区。
然后,经过一番研究,我找到了两种解决方法,简而言之:
- 使用多个音频播放器(因此缓冲队列)来重现声音。
- 将音效缓冲区混合到一个缓冲区中,然后加入队列。
我的问题是: 您认为最好的方法是什么?我忽略了更好的方法吗?
提前致谢。
我正在使用 OpenSL ES 在我的项目中播放音乐和声音。我使用原生音频样本作为开始,它可以很好地再现背景音乐和单个声音,但是当我尝试同时再现两个或多个声音时,声音不会同时再现,因为声音缓冲区在播放时排队播放所有以前的缓冲区。
然后,经过一番研究,我找到了两种解决方法,简而言之:
- 使用多个音频播放器(因此缓冲队列)来重现声音。
- 将音效缓冲区混合到一个缓冲区中,然后加入队列。
我的问题是: 您认为最好的方法是什么?我忽略了更好的方法吗?
提前致谢。
我也在使用 OpenSL ES。刚开始有点复杂...
无论如何,您可以创建任意数量的 ObjectPlayer,始终记住对象的最大数量是 32。
所以,理想情况下,如果你想同时播放 4 个声音,你需要 4 个 PlayerObject 和 1 个 OutputMixObject
希望你能找到有用的
这是一种完全不同的方法:我正在使用SoundPool来执行此操作:它非常简单,而且效果很好。