第一版使用Ajax,绑定事件,操作DOM节点的方法,实现了在线歌曲的获取,播放暂停等基础功能。但是出现一系列的bug,例如歌词拆解失败,音量调节不准确,网络波动时歌曲获取失败,无法播放。 经过一系列的资料查找,在第二版项目中使用了面向对象的方法,提高了代码的可读性和复用性。使用了jquery动画效果实现了歌词的显现和隐藏,频道的选择。歌词的同步和进度条的同步是通过监听playing事件,使用setlnterval方法实现。设置了状态锁,若是用户在同一时间内多次触发,会造成歌词的显示错误的问题,添加状态锁,规定用户只能在一秒内触发1次。(新的问题是添加状态锁后,歌词时间会出现跳秒的bug,现无法完善,留个坑待填)。歌词的获取在查阅资料后通过正则表达式将歌词时间和文本内容分离,播放时不断对比播放时间进行调整。