Saber 酱的抱枕

Fly me to the moon

12/29
2015
学习

saber酱の音乐播放器

这个html5音乐播放器是我花了一天时间琢磨出来的,因为好歹做了个像样的界面,所以版本姑且就叫1.0了。

使用了cookie来记住播放的音乐、音量和循环模式。没有做后台功能,例如评分、喜欢等。

使用网易云音乐的歌单做歌曲列表。

另外,音乐的缓冲进度条可能加载到中途就停止了,这个浏览器的行为,和本播放器无关。chrome经常会这样,火狐则是一口气加载完。如果有需要的话,浏览器会继续加载。

做这个并不难,因为控制音乐播放的种种功能,基本都是html5规范里已经有的,学会使用方法就行了。

使用了jq,虽然不用也没多大关系……归根结底就是懒啊。

另外在移动设备上,音量条和播放列表的滚动条无法拖动(因为滚动条是自己做的,存在一些不足)。

参考资料:

Javascript控制html5 Audio标签

HTML 5 视频/音频参考手册

ps:做这个播放器学到了不少东西。读取xml文件、audio标签的属性、css3动画、设置cookie等,收获不小。


ver1.4.3

网易云音乐的api返回结果有变化,因此修改了下代码。


16.2.15 ver1.4.2

新增功能:
预读下一首歌曲的封面图,提高用户体验。


16.1.19 ver1.4.1

改进:
将获取单曲配置信息改成了获取歌单,这样稳健很多,以后维护歌单也方便很多。
添加了一些逻辑。


16.1.18 ver1.4

改写:
改变了读取xml配置文件获取歌曲信息的办法,使用了网易云音乐的API获取歌曲数据。本地以ajax请求获取配置文件。这样做的好处是以后不用手动编辑xml文件了,但是也有缺点:
1.加载可能会略慢,所以添加了一个少女祈祷中←_←
2.无法添加网易云音乐没有的音乐了。


16.1.16 ver1.3
增加功能:
alt+p可以暂停/继续播放音乐。当然界面上没提示,这是个坑。


16.1.5 ver1.2

增加功能:
当歌曲列表切换到显示区域之下时会自动调整。


16.1.4 ver1.1

改进:
将音量条与音量图标分离,这样简化了一些逻辑,并且在移动设备上也能正常调节音量了。

新增:
pc浏览器上可拖动音量条调节音量。


~15.12.28 ver1.0

saber酱の音乐播放器

    1. saber 文章作者
      Google Chrome 47Google Chrome 47Windows 7 x64 EditionWindows 7 x64 Edition

      好厉害,我找到了获取单曲的api:
      http://music.163.com/api/song/detail/?id=4970794&ids=%5B4970794%5D
      可是用ajax请求有跨域限制……没用过json,头大。又搜索到jsonp……但是api返回的数据不是jsonp

      另外找到了个用api改写的工具,手动添加歌曲信息的话比较方便:
      http://www.jkeita.com/music/index.php?id=4970794
      <a href="http://www.jkeita.com/%E8%8E%B7%E5%8F%96%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90%E5%A4%96%E9%93%BE%E5%9C%B0%E5%9D%80/" target="_blank" rel="nofollow">来源</a>

      回复