强大的AndroidAudioIO回送,仅输出到左耳

时间:2018-10-27 12:02:01

标签: android c++ audio superpowered

使用Superpowered SDK在Android中实现音频环回(从麦克风输入到标准输出)后,我发现输出仅通过耳机的一侧听到。

这是我初始化SuperpoweredAndroidAudioIO的方式:

    audioIO = new SuperpoweredAndroidAudioIO (
        samplerate,                     // sampling rate
        buffersize,                     // buffer size
        true,                           // enableInput
        true,                           // enableOutput
        liveAudioProcessing,            // process callback function
        process,                        // clientData
        -1   ,                          // inputStreamType (-1 = default)
        -1,                             // outputStreamType (-1 = default)
        buffersize * 2                  // latencySamples
);

将inputStreamType或outputStreamType切换到SLES / OpenSLES_AndroidConfiguration.h中的其他选项并不能解决问题。

我的liveAudioProcessing回调函数如下:

static bool liveAudioProcessing (
        void * clientdata,          // custom pointer to processing bool
        short int *audio,           // buffer of interleaved samples
        int numberOfFrames,         // number of frames to process
        int __unused samplerate     // sampling rate
) {
    SuperpoweredShortIntToFloat(audio, floatBuffer, (unsigned int)numberOfFrames);
    if (*(bool *) clientdata and eq != nullptr) {
        eq->process(floatBuffer, floatBuffer, (unsigned int) numberOfFrames);
    }
    SuperpoweredFloatToShortInt(floatBuffer, audio, (unsigned int)numberOfFrames);
    return true;
}

当两个clientdata为false和true时会发生问题,因此与均衡器无关。

1 个答案:

答案 0 :(得分:0)

也许您的Android设备仅在左侧提供麦克风数据?如果仅在回调中包含“ return true”,而没有其他内容,会发生什么情况?