我想使用原生的android ndk和OpenSL ES同时播放多个声音。我已经看过ndk中的原生音频示例,但还是无法弄清楚如何对它进行概括,以便我可以同时播放不同的音频剪辑。我通过谷歌最近50次搜索尝试在网上找到的大多数例子经常看起来依赖于其他代码,例如第三方库,都是用Java编写的(我是寻找本机解决方案),或者只是似乎没有设计为一次处理多个声音。
如果对于如何处理这个问题有任何不同,对于我想要播放的每个声音,我已经在内存中准备好播放了一些原始pcm数据(小端),并且对于每一个我都知道它采样率,每个采样的比特数(8或16)和通道数(1或2)。
任何人都可以提供的任何帮助将不胜感激。 提前谢谢。
答案 0 :(得分:1)
您可以创建多个简单的缓冲区队列Audioplayers。你应该有一个机制来知道队列何时完成播放,这样你就可以利用池中的免费队列。您可以使用回调机制来执行此操作。原生音频示例涵盖了此回调。