首页/新闻资讯/正文详情

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),仅供参考

相关推荐

node-sass 底层解析:LibSass C 上下文 API(Sass Context)全解
node-sass 底层解析:LibSass C 上下文 API(Sass Context)全解

前端构建工具 【免费下载链接】node-sass :rainbow: Node.js bindings to libsass 项目地址: https://gitcode.com/gh_mirrors/no/node-sass 点击查看 免费下载 本文以 LibSass 的 C 上下文接口文档 api-context.md 为主体,系统讲解 Sass_File_Context … · 2026/9/25 7:00:40

Salt Windows 网络状态管理:使用 salt.states.win_network 配置网卡 DNS、静态 IP 与网关
Salt Windows 网络状态管理:使用 salt.states.win_network 配置网卡 DNS、静态 IP 与网关

运维配置管理后端 【免费下载链接】salt Software to automate the management and configuration of infrastructure and applications at scale. 项目地址: https://gitcode.com/gh_mirrors/sa/salt 点击查看 免费下载 Salt 的 win_network 状态模块(… · 2026/9/25 7:00:28

工业互联网位置定位技术实战:AGV导航、UWB部署与精度验证全解析
工业互联网位置定位技术实战:AGV导航、UWB部署与精度验证全解析

简介:《工业互联网-位置定位技术》PPT课件面向工业互联网技术学习者、智能制造从业者及物流系统规划人员,系统讲解定位技术在智能仓储、自动化物流、机器人状态监控等场景中的核心作用,旨在帮助读者解决工业环境下的设备定位与导航选型难题&a… · 2026/9/25 7:00:28

SQLite3跨平台原生库编译与ABI兼容性实战指南
SQLite3跨平台原生库编译与ABI兼容性实战指南

简介:本资源是面向C后端开发者的SQLite跨平台开发套件,专为需要在Windows与Linux环境下快速集成轻量级嵌入式数据库的工程师设计,解决多架构编译链接时缺少原生库与头文件的典型痛点。压缩包共8个文件,包含Windows 64位/32位lib静… · 2026/9/25 7:31:48

AI Agent技能库工程化实践:从Prompt乱象到可控工具调用
AI Agent技能库工程化实践:从Prompt乱象到可控工具调用

如果你最近在研究AI Agent,一定遇到过类似的困局:模型什么都能聊,但一落到具体业务就抓瞎。我去年接手了一个智能客服项目,最初的方案是“一个大模型 一套大而全的Prompt 一份工具列表”,结果模型频繁选错工具、传错… · 2026/9/25 7:31:42

终端环境兼容性与云原生IDE实战指南:从手机写代码到生产级开发工作流
终端环境兼容性与云原生IDE实战指南:从手机写代码到生产级开发工作流

1. 这不是“手机能装个VS Code”——而是重构开发工作流的临界点 2026年,我拆开三台主力设备:一台折叠屏安卓旗舰、一台iPad Pro配妙控键盘、一台搭载ARM架构的Windows平板,把它们全换成主力开发机。不是为了炫技,而是因为本地ID… · 2026/9/25 7:31:42

Neo4j社区版5.26.0 Windows安装配置与避坑指南
Neo4j社区版5.26.0 Windows安装配置与避坑指南

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

小米平板4 Plus刷Droidian:从解锁分区到蓝牙修复的完整指南
小米平板4 Plus刷Droidian:从解锁分区到蓝牙修复的完整指南

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

Chat2DB 实战解析:Springboot + React 多数据库客户端与 AI 辅助 SQL 的工程实践
Chat2DB 实战解析:Springboot + React 多数据库客户端与 AI 辅助 SQL 的工程实践

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

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

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

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

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

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

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

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码