2014-11-13 73 views
0

QAudioInput讀取低級音頻時,得到的數據爲QByteArray。當設置QAudioInput時,可以從數據中告訴它所需的樣品類型。如果你指定float,那麼這是否意味着QByteArray中的數據已經是這種格式?如果是這樣,你是否簡單地將輸出數據轉換爲浮點數組?如果它不是如何被存儲以獲得預期的浮點數?從QAudioInput的qbytearray獲得浮點陣列

回答

0

所有的計算機內存都是單獨的字節,但是您可以將這些字節存儲在任何您想要的內容中。不要把QByteArray當作QVector<char>,QByteArray是Qt的「通用內存緩衝區」類。

如果記錄格式是一個浮點數,那麼只需從字節數組中讀取浮點數,不需要轉換,實際上它會給你比浮點數大於一個字節的樣本數多,而且你會得到垃圾。

您可以直接訪問字節數組data指針並從中讀取size()/sizeof(float)浮點數。