使用jQuery、html5标签制作简洁的音乐播放器

制作一个音乐播放器


作品地址

做一个这样的音乐播放器需要使用到的技术

掌握HTML5新增音频标签<audio>的使用:

  • <audio>常用的标签属性:
  • autoplay自动播放、loop="loop"单曲循环播放、controls控制器
  • <audio>常用的事件属性:
  • ended播放结束事件、pause暂停事件、play播放事件、volumechange音量改变事件、timeupdate播放位置改变事件
  • <audio>常用的对象方法:
  • play()播放、pause()暂停、load()重新加载
  • <audio>常用的对象属性(用于判断音频的状态):
  • ended是否结束、paused是否暂停、volume设置或返回当前音量、muted静音、currentTime播放的当前事件、duration音频的总时间

掌握jQuery的ajax方法,熟练处理后台返回的数据:

  • 处理后台返回的音频数据:
    把返回的音频数据添加到我们音乐播放器内的各个位置,为了防止出现网络问题得到空对象null时我们使用res.song[0].url && typeof(res.song[0].url)!="undefined" && res.song[0].url!=0来过滤掉为空的数据,为空时将再次获取音乐。
  • 获取歌词信息:


    歌词初始信息

    首先我们获取的歌词初始信息是一大串字符串,其中有时间信息,不过还好它是有\n分割的。

  • 处理歌词字符串:
    在得到一大串歌词字符串后我们使用正则表达式获取[]内的事件内容,然后以:分隔分钟和秒,最后创建临时对象把时间和歌词以key、value的形式添加到临时对象里然后放入数组内。
    处理了后的歌词
    这样处理数据的好处就是我们可以使用arr[i].key的形式来获取到具体的数据。
  • 渲染歌词:
    这里的处理方法用到了jQuery的data()方法


    把播放时间放入标签内和歌词文本进行配对,在播放时拿当前播放时间和相邻两个歌词标签内的时间进行比较来确定展示的歌词,同时让进度条长度和播放时间相关联来达到模拟真实进度条的效果。

播放器插件

最后我把这个播放器改写成需要jQuery支持的插件并增加拖动和隐藏功能

  • 使用方法:把css、js、icon三个文件夹内的文件放入你当前项目网站的文件夹下,然后在当前网站的body内给播放器添加容器增加<div class="fm-body"></div>``<script src="js/fm.js"></script>标签。然后输入Music.init($('.fm-body'))一个可拖动隐藏的音乐播放器就可以在当前网站上运行了
    插件地址
    本博客版权归 本人和饥人谷所有,转载需说明来源
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,135评论 6 13
  • 从一开始参加工作起就跟印度人打交道,彼此之间在工作中的套路算得上是提头知尾了。即便如此,但很多时候还是表示不能理解...
    唯生物阅读 1,014评论 0 0
  • 一个远在杭州的朋友在某天晚上兴奋地告诉我,“前几天在网上看到一张特别触动我的图片,还被感动哭了!” 当时,我正跟她...
    兔子巴尼阅读 1,616评论 2 4
  • 今天见了晓殷,好开心,明天加油!fighting! 今天郭老师课上波普尔“三个世界”理论对我启发很大。第一世界:客...
    dq920813阅读 203评论 0 0
  • 那年的夏天,天气没有那么闷,天空的雨滴让我们的心情舒缓了很多。 还记得高考的前几夜,每晚都安静的坐在台灯前...
    LEEZIJA阅读 417评论 0 6