使用Android NDK录音

era*_*mus 2 android android-ndk

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

oli*_*erg 8

C++ libmedia库不是公共API的一部分.有些人使用它,但这是非常气馁的,因为它可能会破坏某些设备和/或未来的Android版本.

我开发了一个录音应用程序,并且相信我,音频支持在各个设备上非常不一致,这非常棘手,所以IMO直接使用libmedia是一个坏主意.

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

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

  • 这个答案已经过时了.请改用android NDK中的OpenSL ES多媒体框架. (4认同)