我尝试制作一个 M3U 文件(播放列表),但是当我尝试编写一个文件时,我的程序崩溃而没有错误。
bool Playlist::savePlaylist(QString path)
{
this->filename = path;
QFile file(path);
if((file.open(QIODevice::WriteOnly | QIODevice::Truncate)) == false)
{
return false;
}
QTextStream out(&file);
if(out.status() != QTextStream::Ok)
{
return false;
}
out << "#EXTM3U" << endl;
for(int i = 0 ; i < this->getSize() ; i++)
{
SongInfo si = this->songs.at(i);
int durata = this->getLengthInSeconds(si.getAddress().toString(QUrl::None));
out << "#EXTINF:" << durata << "," << ID3_GetArtist(&si.getTag()) << " - "
<< ID3_GetTitle(&si.getTag()) << endl;
out << si.getAddress().toString(QUrl::None) << endl;
}
file.close();
return true;
}
如果我尝试使用 188 个文件,1.07 Gb 大小的磁盘,大约 100 首歌曲后程序崩溃。当我尝试在该位置获取 SongInfo 时,我遇到了崩溃。如果我尝试让我们说 30-40 首歌曲,一切都很完美。我不知道可能是什么问题。我试图写块,并从内存中删除这些块,我使用了刷新。我不知道该怎么办,问题可能出在哪里。如果我写控制台这些信息(一个用于打印的for循环)一切都是完美的,但是当我尝试写时......崩溃。
可能是什么问题呢?