我尝试将媒体流写入缓冲区然后再写入文件
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());
}
总是out-file / buffer被破坏(错过的部分)。你可以在这里听这个文件MP3 FILE
从静态文件(来自url)编写mp3顺利进行!
答案 0 :(得分:0)
您没有阅读所有可用的数据。要么一次读取所有数据:
public final void addManually(File file) {
try{
MediaStore.Images.Media.insertImage(mContext.getContentResolver(),
file.getAbsolutePath(), file.getName(), null);
mContext.sendBroadcast(new Intent(
Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
Uri.fromFile(file))
);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
或尝试循环播放:
QByteArray qa = reply->readAll();