[c++] Taglib으로 Ogg Vorbis 파일 처리하기

이번 포스트에서는 C++로 Ogg Vorbis 오디오 파일의 메타데이터를 읽고 쓰는 방법에 대해 알아보겠습니다. 이를 구현하기 위해 Taglib 라이브러리를 사용할 것입니다.

Taglib 라이브러리 소개

Taglib은 오디오 파일의 메타데이터를 읽고 쓰는데 사용되는 라이브러리입니다. 여러 오디오 포맷을 지원하며, 간단한 인터페이스를 제공하여 쉽게 메타데이터를 처리할 수 있습니다.

Ogg Vorbis 파일의 메타데이터 읽기

아래는 Taglib을 사용하여 Ogg Vorbis 파일의 메타데이터를 읽는 간단한 예제 코드입니다.

#include <taglib/oggfile.h>
#include <taglib/vorbisfile.h>
#include <taglib/tag.h>

void readOggMetadata(const char* filename) {
    TagLib::Ogg::Vorbis::File oggFile(filename);
    if (!oggFile.isValid()) {
        // 오디오 파일이 유효하지 않음
        return;
    }

    TagLib::Tag *tag = oggFile.tag();
    if (tag) {
        std::string title = tag->title().to8Bit(true);
        std::string artist = tag->artist().to8Bit(true);
        // 추가적인 메타데이터 항목 처리
    }
}

위의 코드는 taglib/oggfile.htaglib/vorbisfile.h 헤더 파일을 사용하여 Ogg Vorbis 파일의 메타데이터를 읽습니다. oggFile.tag()를 통해 각종 메타데이터 항목을 읽을 수 있습니다.

Ogg Vorbis 파일의 메타데이터 쓰기

이제 Ogg Vorbis 파일의 메타데이터를 쓰는 방법을 알아보겠습니다.

#include <taglib/oggfile.h>
#include <taglib/vorbisfile.h>
#include <taglib/tag.h>

void writeOggMetadata(const char* filename, const char* title, const char* artist) {
    TagLib::Ogg::Vorbis::File oggFile(filename);
    if (!oggFile.isValid()) {
        // 오디오 파일이 유효하지 않음
        return;
    }

    TagLib::Tag *tag = oggFile.tag();
    if (tag) {
        tag->setTitle(title);
        tag->setArtist(artist);
        // 추가적인 메타데이터 항목 처리
        oggFile.save();
    }
}

위의 코드는 oggFile.tag()를 통해 메타데이터를 설정하고, oggFile.save()를 호출하여 변경 사항을 저장합니다.

결론

Taglib을 사용하면 Ogg Vorbis 파일의 메타데이터를 쉽게 읽고 쓸 수 있습니다. 이를 통해 오디오 파일의 정보를 처리하는 애플리케이션을 개발하는 데 도움이 될 것입니다. Taglib 라이브러리에 대한 자세한 정보는 Taglib 웹사이트에서 확인할 수 있습니다.