0
私はTaglibを使用しており、mp3にカバーアートを書いています。ここでは、次のコードは動作します:削除またはスマートポインタのエラー
bool MediaHelper::AddCoverArt(const QString &media, const QString &image_file)
{
TagLib::MPEG::File mpeg(media.toStdString().c_str());
TagLib::ID3v2::Tag *id3v2Tag = mpeg.ID3v2Tag(true);
TagLib::ID3v2::AttachedPictureFrame *frame = new TagLib::ID3v2::AttachedPictureFrame;
frame->setMimeType("image/jpeg");
frame->setPicture(image.data());
id3v2Tag->addFrame(frame);
mpeg.save();
delete frame;
return true;
}
が、私は、私はその後、QScopedPointerでそれを試してみました読み出しアクセス違反
でアプリがクラッシュする機能を残して一度:
bool MediaHelper::AddCoverArt(const QString &media, const QString &image_file)
{
TagLib::ID3v2::Tag *id3v2Tag = mpeg.ID3v2Tag(true);
QScopedPointer<TagLib::ID3v2::AttachedPictureFrame> frame(new TagLib::ID3v2::AttachedPictureFrame);
frame->setMimeType("image/jpeg");
frame->setPicture(image.data());
id3v2Tag->addFrame(frame.data());
mpeg.save();
return true;
}
しかし、同じことは、いつ起こります私はその機能を残す。私はフレームを削除する気にしなければ私は自分のために大きな問題を作成するので、私はちょっと困っています。誰かが私にいくつかの洞察力を与えることができれば。 taglib APIドキュメントから
私はドキュメントの説明を見ましたが、機能は見ていませんでした。私のためにそれをクリアしていただきありがとうございます – adviner