使用OpenSL ES Android同时播放多个音效
我正在使用OpenSL ES在我的项目中播放音乐和声音。我使用本机音频样本作为开始,它可以重现背景音乐和单个声音,但当我尝试同时重现两个或更多声音时,声音不会同时重现,因为在播放所有以前的缓冲区时,声音缓冲区排队等待播放 然后,经过一点研究,我找到了两种方法来修复它,简言之:使用OpenSL ES Android同时播放多个音效,android,android-ndk,opensl,Android,Android Ndk,Opensl,我正在使用OpenSL ES在我的项目中播放音乐和声音。我使用本机音频样本作为开始,它可以重现背景音乐和单个声音,但当我尝试同时重现两个或更多声音时,声音不会同时重现,因为在播放所有以前的缓冲区时,声音缓冲区排队等待播放 然后,经过一点研究,我找到了两种方法来修复它,简言之: 使用多个音频播放器(以及缓冲队列)来重现声音 将音效缓冲区混合到一个缓冲区中,然后排队 我的问题是: 你认为什么是最好的方法?有一种更好的方法我忽略了? 提前谢谢 这里有一种完全不同的方法:我正在使用这种方法:它非常简单,
提前谢谢 这里有一种完全不同的方法:我正在使用这种方法:它非常简单,工作非常完美。我也在使用OpenSL ES。一开始有点复杂 无论如何,您可以创建任意数量的ObjectPlayer,请始终记住对象的最大数量是32 因此,理想情况下,如果要同时播放4种声音,需要4个PlayerObject和1个OutputMixObject
希望您能找到有用的首先,感谢您的回复。我在旧的项目中使用了So声池,是的,它非常简单,即使用C++来实现也是很容易的,但是对于我来说,SudiPo水池有两个大问题,它在Galaxy S设备上崩溃了,而且非常不稳定(一些声音从来没有播放过,第一次播放没有用过……)。