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;
}
ディスク上のサイズが 1.07 Gb の 188 個のファイルで試してみると、約 100 曲の後でプログラムがクラッシュします。その位置で SongInfo を取得しようとすると、クラッシュします。30 ~ 40 曲を試してみると、すべてが完璧に機能します。何が問題なのかわかりません。チャンクを書き込もうとして、それらのチャンクをメモリから削除しようとしましたが、フラッシュを使用しました。どこに問題があるのか 、何をすべきかわかりません。これらの情報をコンソールに書き込むと(印刷のためだけの for ループ)、すべてが完璧ですが、書き込もうとすると...クラッシュします。
何が問題なのですか?