qt QNetworkReply 从互联网广播下载媒体流
Posted
技术标签:
【中文标题】qt QNetworkReply 从互联网广播下载媒体流【英文标题】:qt QNetworkReply download Media Stream from internet radio 【发布时间】:2016-06-16 01:00:59 【问题描述】:我尝试将媒体流写入缓冲区,然后写入文件
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 FILE
从静态文件(来自 url)编写 mp3 顺利!
【问题讨论】:
【参考方案1】:您没有阅读所有可用的数据。一次读取所有数据:
QByteArray qa = reply->readAll();
或尝试循环执行:
QByteArray qa;
while (reply->bytesAvailable() > 0)
qa += reply->read(16 * 1024);
【讨论】:
以上是关于qt QNetworkReply 从互联网广播下载媒体流的主要内容,如果未能解决你的问题,请参考以下文章
Qt 使用 QNetworkReply 获取外部 IP 地址