使用mediainfo库取得媒体文件的tag

本文介绍了一个使用MediaInfo库解析音频文件标签信息的示例程序。该程序能够读取并显示MP3、AAC及WMA等格式音频文件中的标题、专辑、艺术家、作曲家和类型等元数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mediainfo的官网:http://mediaarea.net/


#ifdef MEDIAINFO_LIBRARY
    #include "MediaInfo.h" //Staticly-loaded library (.lib or .a or .so)
    #define MediaInfoNameSpace MediaInfoLib;
#else //MEDIAINFO_LIBRARY
    #include "MediaInfoDLL.h" //Dynamicly-loaded library (.dll or .so)
    #define MediaInfoNameSpace MediaInfoDLL;
#endif //MEDIAINFO_LIBRARY
#include <iostream>
#include <iomanip>
#include <locale>
using namespace MediaInfoNameSpace;

void printTagInfo(String filePath)
{	
	MediaInfo mi;
	mi.Open(filePath);
	
	static const struct MATRIX {
		std::wstring printStr;
		String tagName;
	} lookupInfo[] = {
		{L"Title", L"Title"},
		{L"Album", L"Album"},
		{L"Artist", L"Artist"},
		{L"Composer", L"Composer"},
		{L"Genre", L"Genre"},
	};

	// set locale
	std::wcout.imbue(std::locale(""));

	std::wcout << L"file [" << filePath << L"] tag information:" << std::endl;
	for (size_t i = 0; i < sizeof(lookupInfo)/sizeof(MATRIX); i++)
	{
		String tagInfo = mi.Get(Stream_General, 0, lookupInfo[i].tagName);
		std::wcout << std::setw(10) << lookupInfo[i].printStr << L" : " << tagInfo << std::endl;
	}
	std::wcout << std::endl;

	mi.Close();
}

int main()
{
	printTagInfo(L"F:\\temp\\benow.mp3");
	printTagInfo(L"F:\\temp\\benow.aac");
	printTagInfo(L"F:\\temp\\benow.wma");

	getchar();
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值