получение массива с плавающей точкой из qbytearray QAudioInput

0

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

Теги:
qt
qbytearray
audio-processing
qtmultimedia

1 ответ

0

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню