9 个版本
0.1.8 | 2023年9月9日 |
---|---|
0.1.7 | 2022年3月17日 |
0.1.6 | 2021年4月21日 |
0.1.5 | 2021年3月10日 |
0.1.0 | 2020年4月6日 |
#828 在 解析器实现 中
25 每月下载量
用于 cmus-notify
24KB
555 行
LRC
LyRiCs 的纯 Rust 实现,LyRiCs 是一种与音频文件同步歌词的计算机文件格式。
示例
use lrc::{Lyrics, IDTag, TimeTag};
let mut lyrics = Lyrics::new();
let metadata = &mut lyrics.metadata;
metadata.insert(IDTag::from_string("ti", "Let's Twist Again").unwrap());
metadata.insert(IDTag::from_string("al", "Hits Of The 60's - Vol. 2 – Oldies").unwrap());
lyrics.add_timed_line(TimeTag::from_str("00:12.00").unwrap(), "Naku Penda Piya-Naku Taka Piya-Mpenziwe").unwrap();
lyrics.add_timed_line(TimeTag::from_str("00:15.30").unwrap(), "Some more lyrics").unwrap();
assert_eq!(
r"[al: Hits Of The 60's - Vol. 2 – Oldies]
[ti: Let's Twist Again]
[00:12.00]Naku Penda Piya-Naku Taka Piya-Mpenziwe
[00:15.30]Some more lyrics",
lyrics.to_string()
);
use lrc::{Lyrics, TimeTag};
let lyrics = Lyrics::from_str(r"[00:12.00][01:15.00]Naku Penda Piya-Naku Taka Piya-Mpenziwe
[00:15.30][01:18.00]Some more lyrics ...").unwrap();
if let Some(index) = lyrics.find_timed_line_index(TimeTag::from_str("00:13.00").unwrap()) {
let timed_lines = lyrics.get_timed_lines();
assert_eq!((TimeTag::from_str("00:12.00").unwrap(), "Naku Penda Piya-Naku Taka Piya-Mpenziwe".into()), timed_lines[index]);
} else {
unreachable!();
}
Crates.io
文档
许可证
依赖项
~2.5–4MB
~75K SLoC