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

WMA 파일을 읽거나 수정해야 하는 경우가 있습니다. 이때 C++로 간단하게 Taglib 라이브러리를 사용하여 WMA 파일의 메타데이터를 처리할 수 있습니다.

Taglib 라이브러리 설치

먼저, Taglib 라이브러리를 설치해야 합니다. 보통 리눅스 환경에서는 패키지 매니저를 통해 설치할 수 있지만, 윈도우나 macOS에서는 직접 빌드하여 설치해야 할 수도 있습니다. 자세한 설치 방법은 Taglib 공식 홈페이지에서 확인할 수 있습니다.

Taglib을 이용한 WMA 파일 메타데이터 읽기

다음은 Taglib을 이용하여 WMA 파일의 메타데이터를 읽는 간단한 예제 코드입니다.

#include <taglib/asffile.h>
#include <taglib/fileref.h>
#include <taglib/tag.h>
#include <iostream>

int main() {
    TagLib::FileRef file("example.wma");
    if(!file.isNull() && file.tag()) {
        TagLib::ASF::File *asfFile = dynamic_cast<TagLib::ASF::File *>(file.file());
        if(asfFile) {
            std::cout << "Title: " << asfFile->tag()->title().toCString(true) << std::endl;
            std::cout << "Artist: " << asfFile->tag()->artist().toCString(true) << std::endl;
            // 다른 메타데이터 항목들도 동일한 방법으로 처리 가능
        }
    }
    return 0;
}

위 예제 코드는 Taglib을 이용하여 WMA 파일의 제목과 아티스트 정보를 읽어와 콘솔에 출력하는 예제입니다.

Taglib을 이용한 WMA 파일 메타데이터 수정

Taglib을 이용하여 WMA 파일의 메타데이터를 수정하는 방법도 간단합니다. 다음은 제목과 아티스트 정보를 수정하는 예제 코드입니다.

#include <taglib/asffile.h>
#include <taglib/fileref.h>
#include <taglib/tag.h>

int main() {
    TagLib::FileRef file("example.wma");
    if(!file.isNull() && file.tag()) {
        TagLib::ASF::File *asfFile = dynamic_cast<TagLib::ASF::File *>(file.file());
        if(asfFile) {
            asfFile->tag()->setTitle("New Title");
            asfFile->tag()->setArtist("New Artist");
            asfFile->save();
        }
    }
    return 0;
}

결론

Taglib을 이용하면 C++를 통해 간단하게 WMA 파일의 메타데이터를 읽거나 수정할 수 있습니다. 물론 이 외에도 다양한 기능과 파일 형식을 지원하므로 다양한 멀티미디어 파일을 다룰 때 유용하게 사용할 수 있습니다. Taglib의 자세한 사용법은 공식 문서를 참고하시기 바랍니다.