JS 格式化LRC歌词
写播放器用到的 JS 函数,有了这东西,直接从服务器获取 LRC 就可以了
解析玩的格式为,键名为 时间 秒,值就是当前 时间下的歌词
单行歌词多个时间标签 也可以完美解析
LRC 解析代码
解析玩的格式为,键名为 时间 秒,值就是当前 时间下的歌词
单行歌词多个时间标签 也可以完美解析
LRC 解析代码
/** * Plugin Name: Lrc To Array * Plugin URI: https://gouji.org/ * Description: 转换 LRC 格式的 歌词为 JavaScript Array (数组) * Version: 1.2 * Author: 简爱 * Author URI: http://gouji.org/ * Date: 2014-02-14 * * String.lrcToArray(); * **/ String.prototype.lrcToArray = function() { var br = "\n", lrc_arr = this.split(br), lrc_t = 0, lrc_n = 0, lrcArr = {lrc:[], second:[], route:[]}; for (var i = 0, l = lrc_arr.length; i < l; i++) { var lrc = lrc_arr[i].replace(/\[[\w\W]*\]/, "").replace(/^\s*|\s*$/g, ""); var time = lrc_arr[i].match(/\[[0-9:.]*\]/g); if (time == null) { lrc_n++; continue } lrcArr.lrc[i - lrc_n] = lrc; if (time != null) { for (x in time) { Second = parseInt(time[x].replace(/\[|\]/g, "").time2second()); lrcArr.route[Second] = i - lrc_n; lrcArr.second[lrc_t] = Second; lrc_t++ } } } lrcArr.second = lrcArr.second.sort(function(g, f) { return g - f }); var d = []; for (var i = 0, l = lrcArr.second.length; i < l; i++) { Second = lrcArr.second[i]; Lrc = lrcArr.route[Second]; d[Second] = lrcArr.lrc[Lrc] } return d }; String.prototype.time2second = function() { try { var b = this.split(":"); return parseInt(b[0]) * 60 + parseFloat(b[1]) } catch(a) { return 0 } };
本文出自简爱博客,转载时请注明出处及相应链接。
评论
我想看看是什么播放器[哈哈/]
这个到底要怎么加入呢?求详细说明,就是你也面下面的吗?
播放器真心不错,配合Pjax方能达到完美效果。。这里只是建议一下。
@鬼少:不太会写,没有头续
支持 pjax 的主题有现成的,只不过是 wp 下的
真心感觉很不错啊
音乐挺美好的哈
[1] 没有播放器呀!!
@欧美音乐吧:好吧 这东西兼容性太差了
火狐下能看。。。
@简爱:[15]
@简爱:[12] [12] 呵呵
这个测试还真心不错啊
好有个性的播放器,我刚打开页面的时候只看到歌曲名称没看到播放器还以为播放器出错了,后来用兼容模式浏览还是一样,然后又点击回高速模式,这时看清文字点击歌曲播放看看,我点了,哦,可以播放,但歌词呢?