lc-lyric-parser
A simple and easy-to-use lyric parser.
Install
npm i lc-lyric-parser --save
Usage
lc-lyric-parser
follow LRC format stander.
Example
const LyricParser = require('lc-lyric-parser');
let audio = new Audio();
// you should use ajax to get lyricString instead
let lyricString = `
[ti:会呼吸的痛]
[ar:梁静茹]
[al:崇拜]
[by:Creator]
[00:13.03]Lyric Creator
[01:53.90][00:00.61]
[04:20.51][01:54.84][00:02.30]梁静茹-会呼吸的痛
[00:05.86]作词:姚若龙 作曲:宇恒
[00:08.66]编曲:黄中岳/安栋
[04:26.99][01:47.93]专辑:崇拜
`;
let lyricParser = new LyricParser(lyricString);
lyricParser.lines.forEach(function(line){
// add line to your document
});
lyricParser.handler = function(line){
// switch lyric line by line.index
};
audio.addEventListener('play', function () {
if(lyricParser && lyricParser.hasTimeLine){
lyricParser.play(audio.currentTime);
}
});
audio.addEventListener('pause', function () {
if(lyricParser && lyricParser.hasTimeLine){
lyricParser.pause();
}
});
audio.play();
API
lc-lyric-parser
only has few api. I design it as easy and simple.
play(audioCurrentTime)
lc-lyric-parser
just like Audio object. You just need to play it and it will tell you where the current line of lyric. You need to pass a time of current audio play point to tell lc-lyric-parser
where the current time of audio.
pause()
There is no stop
function. The only way you can stop lc-lyric-parser
is using pause
function.
Property
lc-lyric-parser
supply some useful properties.
lines
lc-lyric-parser
will parse lyric string and push it to lines
property. Each line has these properties:
lyricParser.lines.forEach(line){
// line.index: the index(number) of current line
// line.time: the time(number) of current line
// line.text: the lyric text (string) of current line
}
isPlaying
If you want to know whether it is playing. This property will tell you the status of playing.
hasTimeLine
Some lyric file dose’t have time line. If don’t, this property will be false. Don’t play lyric with no time line.
Licence
MIT