0
私のmp3には存在しないフレームを追加しています。格付け「POPM」がない例私が持っている問題は、レーティング値を設定できないフレームを追加するときです。私は2つのsave()を持っていますが、どちらか一方が働いているかどうかを確認するために1つずつ使用しました。しかし、この機能を再実行してisPOPMExistが有効になった場合、評価を設定することができます。 isPOPMExistはID3v2::TextIdentificationFrame
とID3v2::PopularimeterFrame
間存在しないタグを追加するTaglib
bool isPOPMExist = id3v2Tag->frameListMap().contains("POPM");
if(!isPOPMExist)
{
TagLib::ByteVector bytePOPM("POPM");
TagLib::ID3v2::TextIdentificationFrame *frame = new TagLib::ID3v2::TextIdentificationFrame(bytePOPM, TagLib::String::UTF8);
id3v2Tag->addFrame(frame);
// frame->setText("");
file.save();
dynamic_cast<TagLib::ID3v2::PopularimeterFrame *>(file.ID3v2Tag()->frameList("POPM").front())->setRating(255);
file.save();
}
else
{
auto framelistCount = file.ID3v2Tag()->frameList("POPM").size();
if(framelistCount > 0)
{
if(dynamic_cast<TagLib::ID3v2::PopularimeterFrame *>(file.ID3v2Tag()->frameList("POPM").front()) != 0)
{
int ratingVal = (int)rating;
dynamic_cast<TagLib::ID3v2::PopularimeterFrame *>(file.ID3v2Tag()->frameList("POPM").front())->setRating((int)rating);
return file.save();
}
}
}