设为首页 加入收藏

TOP

HTML5 audio标签自制音乐播放器
2017-10-13 10:49:39 】 浏览:7277
Tags:HTML5 audio 标签 自制 音乐 播放器

相关技能

  • HTML5+CSS3(实现页面布局和动态效果)
  • Iconfont(使用矢量图标库添加播放器相关图标)
  • LESS (动态CSS编写)
  • jQuery(快速编写js脚本)
  • gulp+webpack(自动化构建工具,实现LESS,CSS,JS等编译和压缩代码)

实现的功能

  • 播放暂停(点击切换播放状态)
  • 下一曲(切换下一首)
  • 随机播放(当前歌曲播放完自动播放下一曲)
  • 单曲循环(点击随机播放图标可切换成单曲循环)
  • 音量调节(鼠标移入滑动设置音量大小)
  • 歌曲进度条(可点击切换进度直接跳,也可以点击小圆点拖拽切换进度)
  • 实时歌词(点击词,切换歌词界面,根据实时进度自动滚动歌词)
  • 喜欢(点击添加了一个active效果)
  • 分享(可以直接分享到新浪微博)

audio 标签使用

  • autoplay 自动播放
  • loop 循环播放
  • volume 音量设置
  • currentTime 当前播放位置
  • duration 音频的长度
  • pause 暂停
  • play 播放
  • ended 返回音频是否已结束

播放和暂停代码

_Music.prototype.playMusic = function(){ var _this = this; this.play.on('click', function(){ if (_this.audio.paused) { _this.audio.play(); $(this).html('?'); } else { _this.audio.pause(); $(this).html('?') } }); }

音乐进度条代码

_Music.prototype.volumeDrag = function(){ var _this = this; this.btn.on('mousedown', function(){ _this.clicking = true; _this.audio.pause(); }) this.btn.on('mouseup', function(){ _this.clicking = false; _this.audio.play(); }) this.progress.on('mousemove click', function(e){ if(_this.clicking || e.type === 'click'){ var len = $(this).width(), left = e.pageX - $(this).offset().left, volume = left / len; if(volume <= 1 || volume >= 0){ _this.audio.currentTime = volume * _this.audio.duration; _this.progressLine.css('width', volume *100 +'%'); } } }); }

歌词添加代码

_Music.prototype.readyLyric = function(lyric){ this.lyricBox.empty(); var lyricLength = 0; var html = '<div class="lyric-ani" data-height="20">'; lyric.forEach(function(element,index) { var ele = element[1] === undefined ? '^_^歌词错误^_^' : element[1]; html += '<p class="lyric-line" data-id="'+index+'" data-time="' + element[0] + '"> ' + ele + ' </p>'; lyricLength++; }); html += '</div>'; this.lyricBox.append(html); this.onTimeUpdate(lyricLength); }

代码还有很多就不一一添加了,觉得还行的话可以点下喜欢(也可以在我的GitHub给个Star),你的喜欢和Star是我继续创作的动力,非常感谢!!!源码加群

学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入学习交流群
343599877,我们一起学前端!

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇html5 转义实体字符 元数据 跳转 .. 下一篇修改博客园推荐人数增加W效果

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目