라이브러리 TagLib로 MP3 파일의 "앨범 아티스트"필드를 수정하는 방법은 무엇입니까? 여기에서 비슷한 것을 발견 할 수 있습니다 :taglib : 앨범 아티스트를 수정하는 방법?
f.tag()->setArtist("blabla");
?
라이브러리 TagLib로 MP3 파일의 "앨범 아티스트"필드를 수정하는 방법은 무엇입니까? 여기에서 비슷한 것을 발견 할 수 있습니다 :taglib : 앨범 아티스트를 수정하는 방법?
f.tag()->setArtist("blabla");
?
ID3v2는 실제로 "앨범 아티스트"라는 필드를 지원하지 않습니다.
TPE2
는 녹화에서 공연에 대한 자세한 내용은 사용 : iTunes는 것으로 가정되는 TPE2 프레임을 사용합니다.
'밴드/오케스트라/반주'프레임
전체 프레임 목록은 http://id3.org/id3v2.3.0#Declared_ID3v2_frames을 참조하십시오.
이 태그 라이브러리로,이 트릭 할 것이라는 점을 작성하려면 : 방금 프레임을 제거하려면#include <mpegfile.h>
#include <id3v2tag.h>
#include <textidentificationframe.h>
int main()
{
TagLib::MPEG::File file("foo.mp3");
TagLib::ByteVector handle = "TPE2";
TagLib::String value = "bar";
TagLib::ID3v2::Tag *tag = file.ID3v2Tag(true);
if(!tag->frameList(handle).isEmpty())
{
tag->frameList(handle).front()->setText(value);
}
else
{
TagLib::ID3v2::TextIdentificationFrame *frame =
new TagLib::ID3v2::TextIdentificationFrame(handle, TagLib::String::UTF8);
tag->addFrame(frame);
frame->setText(value);
}
file.save();
return 0;
}
을 간단히 수행 할 수 있습니다
TagLib::MPEG::File file("foo.mp3");
TagLib::ID3v2::Tag *tag = file.ID3v2Tag();
if(tag)
{
tag->removeFrames("TPE2");
file.save();
}
고마워요. 사실, "앨범 아티스트"필드를 삭제하려고했습니다. (미안하지만 내 질문이 정확하지 않았다). 이 "앨범 아티스트"태그를 삭제하는 더 짧은 방법이 있습니까? a) 필드를 제거하거나 b)'setText ("")'? – Basj
'removeFrames'는'TagLib :: Tag'에서 작동하지 않습니다 : http://taglib.github.io/api/classTagLib_1_1Tag.html – Basj
'TagLib :: ID3v2 :: Tag'를 사용해야합니다. 내 예제에서와 마찬가지로 : http://taglib.github.io/api/classTagLib_1_1ID3v2_1_1Tag.html이 경우 프레임은 ID3v2 태그에만 해당됩니다. 클래스는 * all * 태그 형식에 사용되기 때문에'TagLib :: Tag' 기본 클래스에 존재하지 않습니다. – scotchi
내가 그 차이를 이해하지 않습니다 TagLib :: FileRef와 TagLib :: File 사이에 있습니다. TagLib :: FileRef f ("foo.mp3");을 사용하면 f.tag(). removeFrames를 사용할 수 없습니다. TagLib :: MPEG :: File f ("foo.mp3");을 사용하면 f.ID3v2Tag() -> removeFrames를 사용할 수 있습니다. TagLib :: FileRef와 TagLib :: File의 차이점은 무엇입니까? – Basj
'FileRef'는 파일 형식에 적절한 'TagLib :: File' 서브 클래스를 인스턴스화하는 편리한 클래스입니다. 즉, Throw하고 Ogg, FLAC 또는 MP3 파일을 던지더라도 작동합니다. "Album Artist"에 대한 표준은 없기 때문에, 덜 일반화 된 추상화로 내려와야합니다. 이것은 MPEG :: File이 들어오는 곳입니다. – scotchi