android - OpenSL,同时播放不同的声音 fragment 与 android ndk?

标签 android android-ndk opensl

我想使用原生 android ndk 和 OpenSL ES 同时播放多个声音。我已经查看了 ndk 中的 native 音频示例,但无法弄清楚如何概括它以便我可以播放不同的音频剪辑,可能同时播放。我通过最近 50 次左右的搜索尝试在网上找到的大多数示例似乎都依赖于第三方库等附加代码,它们是用 Java 编写的(我是正在寻找原生解决方案),或者似乎并不是为同时处理多种声音而设计的。

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

如能提供任何帮助,我们将不胜感激。 提前致谢。

最佳答案

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

关于android - OpenSL,同时播放不同的声音 fragment 与 android ndk?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17755074/

相关文章:

android - 如何在 android 中建立像弹出窗口一样的 facebook 评论?

android - 未定义对 'cv::CascadeClassifier::detectMultiScale' 的引用,但其他库链接正确

android - 如何在 Android 上使用 OpenSL 测量音频延迟?

android - 将简单的音频过滤器挂接到android下播放的音乐

android - 使用 NDK 精确的 POSIX 线程计时

android - 如何在android中的viewPager的每个页面中显示/启动动画?

android - Jetpack 导航到一个共同的目的地

android - 如何从android中的 Activity 移动到特定选项卡

Android NDK Eclipse 构建错误 : Unable to rename file. 原因:文件存在

android - 关于系统属性