【问题标题】:getting float array from QAudioInput's qbytearray从 QAudioInput 的 qbytearray 获取浮点数组
【发布时间】:2015-01-11 03:37:48
【问题描述】:
从QAudioInput 读取低电平音频时,结果数据为QByteArray。在设置QAudioInput 时,您可以从数据中告诉它您想要的样本类型。如果你在那里指定浮点数,这是否意味着QByteArray 中的数据已经是这种格式?如果是,您是否只是将输出数据转换为读取浮点数组?如果不是如何存储以获取预期的浮点数?
【问题讨论】:
标签:
c++
qt
audio-processing
qbytearray
qtmultimedia
【解决方案1】:
所有计算机内存都是单独的字节,但您可以在这些字节中存储任何您想要的内容。不要将QByteArray 误认为QVector<char>,QByteArray 是Qt 的“通用内存缓冲区”类。
如果记录格式是浮点数,那么只需从字节数组中读取浮点数,无需转换,事实上它会给你比你更多的样本,因为浮点数大于一个字节,你会得到垃圾。
您可以直接访问字节数组data指针并从中读取size() / sizeof(float)浮点数。