新闻详情

新闻详情

首页 / 资讯中心 / 详情

5个实用场景玩转mp3tag4cxx:嵌入专辑封面、写歌词、章节导航与评分标签

发布时间:2026/9/25 7:00:46来源:尧图网络
5个实用场景玩转mp3tag4cxx:嵌入专辑封面、写歌词、章节导航与评分标签
5个实用场景玩转mp3tag4cxx嵌入专辑封面、写歌词、章节导航与评分标签【免费下载链接】mp3tag4cj一个用于读取、创建和修改MP3标签信息的库项目地址: https://gitcode.com/Cangjie-TPC/mp3tag4cjmp3tag4cj是一个用于读取 MP3 文件、读取/创建/修改 ID3 标签ID3v1 与 ID3v2.2~v2.4的 Cangjie 开源库。本文挑出 5 个新手最常用的实用场景嵌入专辑封面、写入歌词、章节导航、评分标签、批量修复旧标签让你几分钟就能上手这个 MP3 标签处理库。一、快速上手3步接入mp3tag4cj第一步获取源码git clone https://gitcode.com/Cangjie-TPC/mp3tag4cj第二步确认依赖。库依赖 charset4cj 字符集包需要 cjc v1.1.3 以上版本见 cjpm.toml。第三步构建cjpm build核心入口类只有两个Mp3File负责打开文件和音频信息ID3v2标签负责封面、歌词等数据帧。二、场景1嵌入专辑封面APIC帧音乐播放器里显示专辑封面靠的就是 ID3v2 的APIC 帧。mp3tag4cj 提供了setAlbumImage()接口定义于 abstract_id3v2_tag.cj只需传入三步图片字节数据ArrayInt8MIME 类型一般填image/png或image/jpeg图片类型0x03 正面封面最常用还支持背面、艺人照、Logo 等 14 种类型读取封面用getAlbumImage()想删掉就用clearAlbumImage()。接口细节可查官方文档 doc/feature_API.md。三、场景2写入歌词USLT帧给 MP3 内嵌完整歌词播放器切歌时歌词就能自动滚动。对应的是USLT 帧setLyrics(OptionString)写入歌词getLyrics()读取歌词标签内容支持ISO-8859-1、UTF-16LE、UTF-16BE、UTF-84 种编码由 encoded_text.cj 统一处理所以中文歌词放心写入不会乱码。四、场景3章节导航CHAP CTOC帧播客、有声书、Live 合集这类一首文件多段内容的场景需要章节标签CHAP 帧setChapters()每一章包含id、startTime/endTime毫秒、startOffset/endOffset还支持子帧挂载额外信息封装类见 id3v2_chapter_frame_data.cjCTOC 帧setChapterTOC()目录树支持层级化章节索引见 id3v2_chapter_toc_frame_data.cj写入后支持章节跳转的播放器就能直接点章节播放。五、场景4添加评分标签POPM帧给心爱的歌打 1~5 星ID3v2 的POPM 帧就是干这个的// 设置评分有效值 [0,5] id3v2Tag.setWmpRating(4) // 读取评分 var rating: Int32 id3v2Tag.getWmpRating()很多播放器会直接把它显示成星标帮你快速区分常听和听过的歌。POPM 帧数据封装在 id3v2_popm_frame_data.cj。六、场景5批量读取与修复旧MP3的ID3v1标签老歌库里大量 MP3 只有 128 字节的ID3v1 标签。mp3tag4cj 对 ID3v1 提供完整支持id3v1_tag.cj操作接口判断是否存在hasId3v1Tag()获取/设置标题getTitle()/setTitle()设置艺术家/专辑/年份setArtist()/setAlbum()/setYear()设置流派/评论setGenre()/setComment()保存为新文件mp3File.save(新路径)配合getBitrate()、isVbr()、getLengthInSeconds()等音频信息接口非常适合写批量扫描批量写标签的小工具。完整可运行的示例见 README.md。七、总结一张表看懂5个场景场景ID3v2 帧核心接口关键源码专辑封面APICsetAlbumImage()id3v2_picture_frame_data.cj写入歌词USLTsetLyrics()abstract_id3v2_tag.cj章节导航CHAP / CTOCsetChapters()/setChapterTOC()id3v2_chapter_frame_data.cj评分标签POPMsetWmpRating()id3v2_popm_frame_data.cj旧标签修复ID3v1setId3v1Tag()save()id3v1_tag.cj所有标签修改完成后调用Mp3File.save()一次性写回文件即可。项目基于 MIT License 开源当前版本 v1.0.4见 CHANGELOG.md欢迎上手尝试这 5 个场景【免费下载链接】mp3tag4cj一个用于读取、创建和修改MP3标签信息的库项目地址: https://gitcode.com/Cangjie-TPC/mp3tag4cj创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

ROS2+MoveIt2实战:Panda机械臂笛卡尔路径规划与避障全流程 2026/9/25 7:40:30

ROS2+MoveIt2实战:Panda机械臂笛卡尔路径规划与避障全流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
迪文串口TFT屏通用驱动:从指令集到可复用代码的落地路径 2026/9/25 7:40:29

迪文串口TFT屏通用驱动:从指令集到可复用代码的落地路径

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
美股与A股市场反应差异解析及套利策略 2026/9/25 7:40:23

美股与A股市场反应差异解析及套利策略

1. 市场反应差异现象解析最近观察到的一个有趣现象:某些行业利好或利空消息在美股市场快速反应后,A股市场往往需要延迟一段时间才会出现类似的价格变动。这种跨市场间的信息传导延迟,本质上反映了不同市场结构、参与者构成和交易机制带来的价…

阅读更多 →
AEME 2026国际学术会议:航空航天与机械工程前沿解析 2026/9/25 7:40:23

AEME 2026国际学术会议:航空航天与机械工程前沿解析

1. 会议背景与核心价值2026年航空航天工程与机械工程国际学术会议(AEME 2026)是南京航空航天大学主办的重量级行业盛会。作为在亚洲地区具有重要影响力的学术平台,这个会议已经连续举办多届,形成了稳定的学术交流传统。今年选址北…

阅读更多 →
Cadence Allegro与Altium Designer封装原理图对比 2026/9/25 7:40:23

Cadence Allegro与Altium Designer封装原理图对比

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
AMS芯片设计从0.18um到55nm:工艺迁移中的模拟电路实战经验 2026/9/25 7:40:23

AMS芯片设计从0.18um到55nm:工艺迁移中的模拟电路实战经验

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉