我的目标是将QAudioRecorder
录音保存到内存中。根据我的研究,存储录音的最佳方式似乎是使用QByteArray
. 我的录音机使用QAudioProbe
.
从audioBufferProbed
信号中,我尝试使用此插槽方法将数据附加到字节数组。
QByteArray *byteArr;
void AudioRecorder::processBuffer(const QAudioBuffer &buffer)
{
byteArr->append(buffer.constData<char>());
qDebug() << buffer.byteCount();
qDebug() << byteArr->size();
}
buffer.byteCount();
但是,考虑到不断返回 4092,这似乎不起作用,这看起来很正常,但byteArr->size();
返回奇怪和不规则的增量,通常从 2、4、6、7、189 开始。
数据通常也只有大约 18kb 的大小,这也让我相信数据没有正确地附加到字节数组中。
根据QByteArray::size()文档size()
应该给出数组中有多少字节。除了QAudioBuffer::byteCount()还应该给出当前缓冲区中的字节数,不应该将缓冲区中的完整 4092 复制到数组中吗?
QByteArray
如果有更好的方法来存储数据,我也愿意接受另一种不使用的解决方案。