我正在使用 QAudioInput 的 start() 函数从麦克风接收音频数据。此函数将流数据添加到 QBuffer(数据进入 QByteArray)。如果那部分数据对我没有用,我想经常删除缓冲区的第一个字节。
例如; 我有一个包含字母的数据(保存在 QBuffer 中并停止流):
abcdefg
当我在这个数组上使用 QByteArray::remove(0,1) 函数时,我得到了我期望的结果:
cdefg
但是如果我在数据流入缓冲区时使用 remove() 函数,我会在缓冲区末尾得到覆盖的音频数据,例如,如果我在添加“f”字母之前使用 QByteArray::remove(0,1) 函数(我在数组中有 abcde,我将在添加 f、g 字母之前删除前两个字母)
我期待看到;
[cdefg] 在缓冲区中,但结果如下:
[c (d+f) (e+g)]
有谁知道如何解决这个问题?