2014-11-13 9 views
0

При чтении звука низкого уровня от QAudioInput результирующие данные являются QByteArray. При настройке QAudioInput вы можете указать тип образца, который вы хотите получить из данных. Если вы укажете там float, значит ли это, что данные в QByteArray уже в этом формате? Если это так, вы просто бросаете выходные данные для чтения массива float? Если это не то, как он хранится, чтобы получить ожидаемые поплавки?Получение массива float из qbytearray QAudioInput

ответ

0

Вся память компьютера - это отдельные байты, но вы можете хранить в этих байтах все, что захотите. Не ошибайтесь QByteArray для QVector<char>, QByteArray - это класс буфера памяти общего типа Qt.

Если формат записи является поплавком, то просто читайте поплавки из массива байтов, нет необходимости конвертировать, на самом деле это даст вам больше образцов, чем с тех пор, как поплавки больше байта, и вы получите мусор ,

Вы можете напрямую получить доступ к байтному указателю data и прочитать по нему size()/sizeof(float).