40

我一直在尝试使用可用于使用 android 2.3 进行本机音频的 OpenSL ES 库,但似乎头文件和规范的 600 页 pdf 是唯一可用的文档。

我应该在哪里寻找示例、教程或功能的简要概述?

4

5 回答 5

21

NDK 附带一个名为NativeAudio的示例应用程序。它提供了几乎所有您想要实现的示例:效果、流式传输、合成等。如果您查看它的代码,您将获得一个良好的开端。

于 2011-08-11T18:21:34.557 回答
16

你也可以查看 victor lazzarini 的音频编程博客,它有一个 android 部分:http ://audioprograming.wordpress.com/category/android/

在那里你会找到工作示例,它们对我开始使用 openSL 非常有用,并且可以用作使用 ndk 开发音频应用程序的基础。

另外,不要忽视规范文档,毕竟它并不长,第一部分不超过五十页,为您提供了解一切工作原理所需的视角,其余部分仅供参考。请注意,android openSL 实现中的某些内容与规范不同:有关此内容的更多信息,请参见 your-ndk-directory/docs/opensles/index.html。

于 2012-04-18T15:03:30.530 回答
12

经过一番搜索后,我发现了更有价值的信息:

于 2012-10-31T09:55:00.367 回答
7

对于那些只想播放单个声音文件或录制简短快照(在单个缓冲区中)的人来说,NDK 项目就足够了。我查看了“Android NDK Beginner's Guide”,它确实没有比示例 NDK 项目解释太多。

但实际上,对于这些应用程序,使用其中一种 Java API 可能会更好。恕我直言,为他们使用 OpenSL ES 有点矫枉过正。将有更多的代码要编写,但没有真正的收获。

OpenSL 的优势在于那些对音频合成和处理的低延迟(当这些延迟可用时)感兴趣的人,为此,您可能想要流式传输音频,而不是播放/录制单个缓冲区。这本书的章节和 NDK 示例不会教你。音频编程博客中的博文为这些目的提供了更多信息。

于 2012-11-01T16:05:07.000 回答
0

Victor Lazzarini 在 android 部分的音频编程博客之一确实是一个好的开始。http://audioprograming.wordpress.com/category/android/

此博客的 bitbucket git 存储库中有一个可直接下载的示例代码,这是最受欢迎的部分。

构建和运行非常简单。对我来说,我需要这些步骤来构建和运行这个示例:

  1. 安装 SWIG:swig-3.0.2。通过 3 个步骤安装它:

    $ 配置 $ 制作 $ sudo 制作安装。

  2. 编辑 build.sh 以反映 NDK 的位置。并在顶层目录运行 build.sh 脚本。
  3. 通过以下方式生成 build.xml:

    $ android 更新项目 --name opensl-es-audiotest --target 1 --path ./

  4. 使用 ant 构建:$ ant debug
  5. 然后,您可以将其安装到您的设备并进行测试:

    $ adb install bin/opensl-es-audiotest-debug.apk

于 2014-07-12T04:11:53.660 回答