如何指定AudioRecorder对象的输入源?

时间:2012-08-29 01:42:43

标签: android android-ndk opensl

我正在使用OpenSL将Java(使用AudioRecord类)的音频捕获循环移植到本机库。

这样做的原因是在分析之后,我们的测试手机中的捕获循环正在消耗大约2%的OpenSL CPU。这是一个有意义的收获!

Java AudioRecord类的构造函数接收source参数,该参数可配置为多个值(MIC, CAMCORDER, VOICE_DOWNLINK等)。

到目前为止,我还没有找到OpenSL中source参数的等价(如果存在)。

有人知道是否有办法为AudioRecorder对象指定此Source参数?

干杯!

1 个答案:

答案 0 :(得分:4)

查看SLES/OpenSLES_Android.hSLES/OpenSLES_AndroidConfiguration.h中定义的函数和常量。从OpenSLES获取录制对象时,使用GetInterface()获取SL_IID_ANDROIDCONFIGURATION的接口指针。在那里,您可以使用返回的SetConfiguration()指针上的密钥SL_ANDROID_KEY_RECORDING_PRESET来呼叫SLAndroidConfigurationItf