0
我添加了一個不存在的框架,我的一些mp3。示例缺少「POPM」等級。我遇到的問題是當我添加框架時,我無法設置評分值。我有兩個save(),我一次只用一個來看看是否有人工作。但是,如果我重新運行此功能,並且是現在有效的,我可以設置評分。所以,我不知道哪一步後,我設定的POPM丟失時isPOPMExist失敗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();
}
}
}