При чтении низкоуровневого звука из QAudioInput
результирующие данные являются QByteArray
. При настройке QAudioInput
вы можете указать тип образца, который вы хотите получить из данных. Если вы укажете там float, значит ли это, что данные в QByteArray
уже в этом формате? Если это так, вы просто бросаете выходные данные для чтения массива float? Если это не то, как он хранится, чтобы получить ожидаемые поплавки?
Вся память компьютера - это отдельные байты, но вы можете хранить в этих байтах все, что захотите. Не допускайте ошибки QByteArray
для QVector<char>
, QByteArray
- это класс Qt "общий буфер памяти".
Если формат записи является поплавком, то просто читайте поплавки из массива байтов, нет необходимости конвертировать, на самом деле это даст вам больше образцов, чем с тех пор, как поплавки больше байта, и вы получите мусор.
Вы можете напрямую получить доступ к указателю data
байтового массива и почитать size()/sizeof(float)
data
size()/sizeof(float)
.