动态歌词
播放器如何读取逐行时间轴并同步高亮当前歌词。
时间轴格式
歌词使用逐行时间信息。每一行至少包含文本、开始时间和结束时间,播放器根据音频当前位置判断当前句。
[
{ "text": "第一句歌词", "start": 1250, "end": 4380 },
{ "text": "第二句歌词", "start": 4380, "end": 7020 }
]
同步逻辑
音频播放时持续读取 currentTime,换算为毫秒后匹配歌词区间。当前句高亮,并让下一句保持在可预期的位置。
边界处理
时间缺失、结束早于开始或歌词与歌曲不匹配时,不应静默输出错误结果。数据需要先校对,再进入播放器。
详情页联动
底部播放器、歌词侧栏和歌曲详情页使用同一份播放状态,确保切歌、暂停和拖动进度后仍然同步。