从QAudioInput' s qbytearray获取float数组

时间:2014-11-13 20:56:30

标签: c++ qt audio-processing qbytearray qtmultimedia

QAudioInput读取低级音频时,结果数据为QByteArray。设置QAudioInput时,您可以从数据中获取所需的样本类型。如果你在那里指定float,那是否意味着QByteArray中的数据已经采用这种格式?如果是,您是否只是将输出数据转换为读取float数组?如果不是如何存储以获得预期的浮动?

1 个答案:

答案 0 :(得分:0)

所有计算机内存都是单独的字节,但您可以根据需要存储这些字节。不要将QByteArray误认为QVector<char>QByteArray是Qt&#34;通用内存缓冲区&#34;类。

如果记录格式是浮点数,那么只需从字节数组中读取浮点数,不需要转换,实际上它会提供比浮点数大于一个字节更多的样本,并且你会得到垃圾。

您可以直接访问字节数组data指针并从中读取size() / sizeof(float)个浮点数。