22个版本 (10个重大更新)
0.11.0 | 2021年6月15日 |
---|---|
0.10.1 | 2021年4月25日 |
0.9.1 | 2021年2月14日 |
0.7.3 | 2020年12月13日 |
0.1.0 | 2020年3月26日 |
#860 在 解析器实现 中排名
每月下载量 2,590次
用于 21 个 包(8个直接使用)
685KB
3K SLoC
rust-mp4ameta
一个用于读取和写入iTunes风格的MPEG-4音频元数据的库。这种类型的元数据通常位于m4a
或m4b
文件中,但基本上任何mp4
容器都支持它。
示例
简单方法
let mut tag = mp4ameta::Tag::read_from_path("music.m4a").unwrap();
println!("{}", tag.artist().unwrap());
tag.set_artist("artist");
tag.write_to_path("music.m4a").unwrap();
复杂方法
use mp4ameta::{Data, Fourcc, Tag};
let mut tag = Tag::read_from_path("music.m4a").unwrap();
let artist_ident = Fourcc(*b"\xa9ART");
let artist = tag.string(&artist_ident).next().unwrap();
println!("{}", artist);
tag.set_data(artist_ident, Data::Utf8("artist".to_owned()));
tag.write_to_path("music.m4a").unwrap();
使用自由标识符
use mp4ameta::{Data, FreeformIdent, Tag};
let mut tag = Tag::read_from_path("music.m4a").unwrap();
let isrc_ident = FreeformIdent::new("com.apple.iTunes", "ISRC");
let isrc = tag.string(&isrc_ident).next().unwrap();
println!("{}", isrc);
tag.set_data(isrc_ident, Data::Utf8("isrc".to_owned()));
tag.write_to_path("music.m4a").unwrap();
有用的链接
- QuickTime规范
- MultimediaWiki QuickTime容器
- AtomicParsley文档
- Mutagen文档
- Hydrogen音频标签映射
- MusicBrainz Picard标签映射
- 文件类型列表
测试
__运行所有测试:__
cargotest
__在您的收藏夹上测试此库:__
cargotest ----nocapture collection<路径>