我正在使用OpenSL将Java(使用AudioRecord
类)的音频捕获循环移植到本机库。
这样做的原因是在分析之后,我们的测试手机中的捕获循环正在消耗大约2%的OpenSL CPU。这是一个有意义的收获!
Java AudioRecord类的构造函数接收source
参数,该参数可配置为多个值(MIC, CAMCORDER, VOICE_DOWNLINK
等)。
到目前为止,我还没有找到OpenSL中source参数的等价(如果存在)。
有人知道是否有办法为AudioRecorder对象指定此Source参数?
干杯!
答案 0 :(得分:4)
查看SLES/OpenSLES_Android.h
和SLES/OpenSLES_AndroidConfiguration.h
中定义的函数和常量。从OpenSLES获取录制对象时,使用GetInterface()
获取SL_IID_ANDROIDCONFIGURATION
的接口指针。在那里,您可以使用返回的SetConfiguration()
指针上的密钥SL_ANDROID_KEY_RECORDING_PRESET
来呼叫SLAndroidConfigurationItf
。