1

我想放大使用双簧管库由麦克风录制的音频数据。我像这样创建了 AudioEngine.cpp:https://github.com/google/oboe/blob/master/samples/LiveEffect/src/main/cpp/LiveEffectEngine.cpp 这是具有 audioData 的类:

DataCallbackResult
AudioEngine::onAudioReady(AudioStream *oboeStream, void *audioData, int32_t numFrames) {

    /* some code */


 // add your audio processing here

    return DataCallbackResult::Continue;
}
4

1 回答 1

1

在 LiveEffect 示例中,录制和播放流都是AudioFormat::I1616 位整数。在这一行上,您要投射到float

auto *outputData = static_cast<float *>(audioData);    

这将导致您听到的失真,因此只需投射int16_t并乘以恒定幅度。

确保检查放大的样本值是否不高于,INT16_MAX否则您会得到环绕和失真。

于 2019-04-02T10:57:21.917 回答