我尝试将媒体流写入缓冲区,然后将
buf.open(QBuffer::ReadWrite);
file.setFileName("out.mp3");
file.open(QIODevice::WriteOnly|QFile::Truncate);
mp3file.setDevice(&file);
尝试:
1.
void MainWindow::reply_readyRead()
{
QByteArray qa;
qa = reply->read(16 * 1024);
buf.write(qa.data(),qa.size());
}
2.
void MainWindow::reply_readyRead()
{
QByteArray qa;
qa = reply->read(16 * 1024);
buf.write(qa.data(),qa.size());
mp3file.writeRawData(qa.data() ,qa.size());
}
始终断裂/缓冲区(错过的零件)。您可以在此处收听此文件mp3文件
从静态文件(来自URL)编写mp3都很好!
您没有读取所有可用数据。要么一次读取所有数据:
QByteArray qa = reply->readAll();
或尝试在循环中进行:
QByteArray qa;
while (reply->bytesAvailable() > 0)
qa += reply->read(16 * 1024);