OpenSL,用android ndk同时播放不同的声音片段?

时间:2013-07-19 20:37:08

标签: android android-ndk opensl

我想使用原生的android ndk和OpenSL ES同时播放多个声音。我已经看过ndk中的原生音频示例,但还是无法弄清楚如何对它进行概括,以便我可以同时播放不同的音频剪辑。我通过谷歌最近50次搜索尝试在网上找到的大多数例子经常看起来依赖于其他代码,例如第三方库,都是用Java编写的(我是寻找本机解决方案),或者只是似乎没有设计为一次处理多个声音。

如果对于如何处理这个问题有任何不同,对于我想要播放的每个声音,我已经在内存中准备好播放了一些原始pcm数据(小端),并且对于每一个我都知道它采样率,每个采样的比特数(8或16)和通道数(1或2)。

任何人都可以提供的任何帮助将不胜感激。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以创建多个简单的缓冲区队列Audioplayers。你应该有一个机制来知道队列何时完成播放,这样你就可以利用池中的免费队列。您可以使用回调机制来执行此操作。原生音频示例涵盖了此回调。