android - 使用 Android NDK 录音

标签 android android-ndk

我尝试使用 android ndk 录制音频。人们说我可以使用“frameworks/base/media/libmedia/AudioRecord.cpp”。但它在内核中。我如何访问和使用它?

最佳答案

C++ libmedia 库不是公共(public) API 的一部分。有些人使用它,但非常不鼓励这样做,因为它可能会在某些设备上和/或 future 的 Android 版本中损坏。

我开发了一个录音应用程序,相信我,音频支持在设备之间非常不一致,这非常棘手,所以 IMO 直接使用 libmedia 不是一个好主意。

使用公共(public) API 捕获原始音频的唯一方法是使用 Java AudioRecord类(class)。它将为您提供 PCM 数据,然后您可以选择将其传递给 C 优化例程。

或者,尽管这有点困难,但您可以围绕 Java AudioRecord 类编写 C/C++ 包装器,因为可以通过 JNI 实例化 Java 对象和调用方法。

关于android - 使用 Android NDK 录音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3297305/

相关文章:

android - 如何阻止应用内结算客户端丢失 EGL 上下文?

android - 如何跟踪全景图中每一帧的相机运动 (OpenCV//Android)

opengl-es - eglQuerySurface 给出错误的大小

android - 使用 NDK 代码 Android 打开/关闭相机 LED

android - 在 native 库中使用 AInputQueue_attachLooper()

android - 检索项目 : No resource found that matches the given name 'Theme.AppCompat.Light' 的父级时出错

android - 使用 Android 4.0 风格的切换按钮

java - 如果 onDestroy 之后有一个 Instruction,这个 Instruction 会被执行吗?

android - 广播接收器 onReceive() 被多次调用

java - Android JNI 检测到应用程序错误 : JNI GetMethodID called with pending exception