2015-05-20 35 views
0

我使用c#編寫的webservice公開了存儲在數據庫(使用實體框架)中的音頻文件(mp3文件)的bytearray。我使用File.WriteAllBytes()將其保存到文件中,我可以聽音頻(文件大小爲10kB)。從c#webservice檢索字節數組轉換爲Qt

我需要對Qt做同樣的事情。我解析XML和保存音頻字節數組的QByteArray這樣的:

QByteArray bytes = readValue().toUtf8(); 

其中readValue()是QStringRef,然後我將它保存到文件

qint64 bytesWritten = file.write(bytes); 

文件HES 14KB那麼,我想有是一些格式問題,但不知道在哪裏。

回答

0

我解決了這個問題。在web服務我回字節數組轉換爲十六進制字符串

string hex = BitConverter.ToString(ba); 
string hexString = hex.Replace("-", ""); 

然後在我的Qt分析數據

QByteArray bytes = QByteArray::fromHex(readValue().toString().toLatin1())); 

,並將其保存到文件

qint64 bytesWritten = file.write(bytes);