QT Qnetworkreply从Internet Radio下载媒体流



我尝试将媒体流写入缓冲区,然后将

   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);

最新更新