从 QAudioInput 的 qbytearray 获取浮点数组

getting float array from QAudioInput's qbytearray

本文关键字:数组 获取 qbytearray QAudioInput      更新时间:2023-10-16

当从QAudioInput读取低电平音频时,得到的数据是一个QByteArray。设置QAudioInput时,您可以从数据中告诉它所需的样本类型。如果在此处指定 float,这是否意味着 QByteArray 中的数据已经采用此格式?如果是,您是否只是强制转换输出数据以读取浮点数组?如果不是,如何存储它以获得预期的浮点数?

所有计算机内存都是单个字节,但您可以在这些字节中存储任何您想要的内容。不要把QByteArray误认为是QVector<char>QByteArray是Qt的"通用内存缓冲区"类。

如果记录格式是浮点数,那么只需从字节数组中读取浮点数,无需转换,实际上它会给你比你拥有的更多的样本,因为浮点数比一个字节大,你会得到垃圾。

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