3

我想使用原生 android ndk 和 OpenSL ES 同时播放多个声音。我已经查看了 ndk 中的原生音频示例,但无法弄清楚如何对其进行概括,以便我可以同时播放不同的音频剪辑。我通过最近 50 次左右的搜索尝试在网上找到的大多数示例通常似乎依赖于其他代码,例如第三方库,它们都是用 Java 编写的(我是寻找本地解决方案),否则似乎并非旨在一次处理多个声音。

如果它对如何处理这个有任何影响,对于我想要播放的每个声音,我已经在内存中有一些原始 pcm 数据(小端序)可以播放,并且对于每个我知道它的采样率,每个样本的位数(8 或 16)和通道数(1 或 2)。

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

4

1 回答 1

1

您可以创建多个简单的缓冲区队列音频播放器。您应该有一种机制可以知道队列何时结束播放,以便您可以使用池中的免费队列。您可以使用回调机制来做到这一点。本机音频示例涵盖了此回调。

于 2013-10-07T16:31:59.497 回答