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