本文整理汇总了C++中taglib::id3v2::Tag::removeFrames方法的典型用法代码示例。如果您正苦于以下问题:C++ Tag::removeFrames方法的具体用法?C++ Tag::removeFrames怎么用?C++ Tag::removeFrames使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类taglib::id3v2::Tag
的用法示例。
在下文中一共展示了Tag::removeFrames方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: saveTag
bool mttFile::saveTag( void )
{
fileref = new TagLib::FileRef( QFile::encodeName( fname ).constData() );
if ( ismpeg ) {
TagLib::MPEG::File *f = dynamic_cast<TagLib::MPEG::File *>(fileref->file());
// Remove id3v1 tag. Help put that hack into eternal rest :-)
f->strip( TagLib::MPEG::File::ID3v1, true );
//qDebug("ID3v1 tag stripped!");
TagLib::Tag::duplicate( tag, dynamic_cast<TagLib::Tag *>( f->ID3v2Tag( true ) ), true );
// Save extra mp3 tags
TagLib::ID3v2::TextIdentificationFrame *myframe;
TagLib::ID3v2::Tag *mytag;
mytag = f->ID3v2Tag( false );
for ( QStringList::Iterator it = mp3eframes.begin(); it != mp3eframes.end(); ++it ) {
myframe = new TagLib::ID3v2::TextIdentificationFrame( (*it).toAscii().constData(), TagLib::String::UTF8 );
mytag->removeFrames( (*it).toAscii().constData() );
++it;
myframe->setText( Q4StringToTString( (*it) ) );
mytag->addFrame( myframe );
}
delete fileref;
fileref = NULL;
return f->save( TagLib::MPEG::File::ID3v2, true );
}
else {
TagLib::Tag::duplicate( tag, fileref->tag(), true );
delete fileref;
fileref = NULL;
return fileref->save();
}
}
示例2: saveFile
void saveFile(string stdPath, DataEditors* editors) {
const char* charPath = stdPath.c_str();
ifstream fileCheck(charPath);
if(!fileCheck.good()) {
QWidget *w = new QWidget();
QLabel *l = new QLabel("Invalid file!", w);
QPushButton *b = new QPushButton("OK", w);
QVBoxLayout *lay = new QVBoxLayout();
lay->addWidget(l);
lay->addWidget(b);
w->setLayout(lay);
QWidget::connect(b, SIGNAL(clicked()), w, SLOT(close()));
w->show();
return;
}
TagLib::FileName name = charPath;
TagLib::FileRef file(name);
if(editors->artist->isEnabled())
file.tag()->setArtist(editors->artist->text().toStdString());
if(editors->album->isEnabled())
file.tag()->setAlbum(editors->album->text().toStdString());
if(editors->track->isEnabled())
file.tag()->setTrack(editors->track->text().toInt());
if(editors->title->isEnabled())
file.tag()->setTitle(editors->title->text().toStdString());
if(editors->year->isEnabled())
file.tag()->setYear(editors->year->text().toInt());
if(editors->genre->isEnabled())
file.tag()->setGenre(editors->genre->currentText().toStdString());
if(editors->comment->isEnabled())
file.tag()->setComment(editors->comment->toPlainText().toStdString());
file.save();
if(editors->picture->isEnabled()) {
TagLib::MPEG::File mpegFile(name);
TagLib::ID3v2::Tag *tag = mpegFile.ID3v2Tag(true);
TagLib::ID3v2::AttachedPictureFrame *frame = new TagLib::ID3v2::AttachedPictureFrame;
QString picture = editors->picture->text();
if(picture == "<Attached picture>") {
TagLib::ID3v2::AttachedPictureFrame *f =
static_cast<TagLib::ID3v2::AttachedPictureFrame *>(editors->mpegFile->ID3v2Tag(true)->frameList("APIC").front());
frame->setMimeType(f->mimeType());
frame->setPicture(f->picture());
tag->removeFrames("APIC");
tag->addFrame(frame);
mpegFile.save();
} else if(picture == "") {
tag->removeFrames("APIC");
mpegFile.save();
} else {
frame->setMimeType("image/jpeg");
string stdPic = picture.toStdString();
const char* charPicture = stdPic.c_str();
ifstream fileCheck(charPicture);
if(!fileCheck.good()) {
QWidget *w = new QWidget();
QLabel *l = new QLabel("Invalid picture!", w);
QPushButton *b = new QPushButton("OK", w);
QVBoxLayout *lay = new QVBoxLayout();
lay->addWidget(l);
lay->addWidget(b);
w->setLayout(lay);
QWidget::connect(b, SIGNAL(clicked()), w, SLOT(close()));
w->show();
delete w;
return;
}
ImageFile imageTagLibFile(charPicture);
frame->setPicture(imageTagLibFile.data());
tag->removeFrames("APIC");
tag->addFrame(frame);
mpegFile.save();
}
}
}