【问题标题】:How can I specify the input source for the AudioRecorder object?如何指定 AudioRecorder 对象的输入源?
【发布时间】:2012-08-23 14:01:50
【问题描述】:

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

这样做的原因是,在分析之后,捕获循环在我们的测试手机中消耗的 CPU 比 OpenSL 中的 CPU 减少了大约 2%。这是一个显着的收获!

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

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

有人知道是否可以为 AudioRecorder 对象指定此 Source 参数吗?

干杯!

【问题讨论】:

    标签: android android-ndk opensl


    【解决方案1】:

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

    【讨论】:

    • 非常感谢@kelnos,这正是我想要的——关于这个主题的文档很少!
    • 是的,对我来说,这是一个尝试和错误,在标题中四处寻找,以及在野外找到一些类似的代码。文档很糟糕!
    猜你喜欢
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 2023-03-24
    • 1970-01-01
    • 2017-01-13
    • 2014-08-08
    相关资源
    最近更新 更多