安卓双簧管故障/噪音/失真

Android oboe glitch/noise/distortion

本文关键字:噪音 失真 故障 双簧管      更新时间:2024-09-27

我正在尝试在我的音频/视频通信应用程序中使用双簧管,我正在尝试双簧管指南中的onAudioReady往返回调:https://github.com/google/oboe/blob/main/docs/FullGuide.md

现在我很沮丧:

  1. 如果读取直接写入*audioData,则音质是完美的,即:
auto result = recordingStream->read(audioData, numFrames, 0);
  1. 但如果我在它们之间添加缓冲区,就会出现严重的噪声/故障,这是非常不可取的:
auto result = recordingStream->read(buffer, numFrames, 0);
std::copy(buffer, buffer + numFrames, static_cast<int16_t *>(audioData));

通过检查日志,这个缓冲动作在1ms内完成,假设不会有伤害吗?

1和2也使用PCM_I16音频格式,缓冲区为int16_t *,大小为numFrames

希望有人能指出造成这种情况的原因是什么?对不起,我缺乏音频处理和c++知识。

我已经弄清楚了,因为通道是立体声的,每帧采样数是2,即:

auto result = recordingStream->read(buffer, numFrames, 0);
std::copy(buffer, buffer + numFrames * 2, static_cast<int16_t *>(audioData));