HTML5 audio标签自制音乐播放器

jiaoyu121 2021-09-04 原文


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,我们一起学前端!

发表于
2017-06-17 17:21 
狙击手+ 
阅读(1127
评论(0
编辑 
收藏 
举报

 

版权声明:本文为jiaoyu121原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/jiaoyu121/p/7040808.html

HTML5 audio标签自制音乐播放器的更多相关文章

  1. 基于 HTML5 WebGL + VR 的 3D 机房数据中心可视化

    前言 在 3D 机房数据中心可视化应用中,随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系 […]...

  2. 分享31个非常有用的HTML5教程

    几年前,HTML5前景还很模糊,只有少数的互联网极客才会关心。而现在,随着现代主流浏览器对HTML5的不断支持和完善,越来越多的开发者开始使用HTML5来制作各种功能强大的应用程序,HTML5正引领互联网新革命。为了方便大家更好的学习...

  3. 基于 HTML5 + WebGL 的宇宙 3D 展示系统

    近年来随着引力波的发现、黑洞照片的拍摄、火星上存在水的证据发现等科学上的突破,以及文学影视作品中诸如《三体》、 […]...

  4. html5文件夹上传源码

    一、 功能性需求与非功能性需求要求操作便利,一次选择多个文件和文件夹进行上传;支持PC端全平台操作系统,Windows,Linux,Mac支持文件和文件夹的批量下载,断点续传。刷新页面后继续传输。关闭浏览器后保留进度信息。支持...

  5. HTML5 canvas生成图片马赛克特效插件

    HTML5 canvas生成图片马赛克特效插件 简要教程 这是一款使用html5 canvas来将图片制作成马 […]...

  6. HTML5 Canvas——基础入门

    认识canvas html5的新标签 <canvas>标签只是图像容器,必须使用js来绘制图形 可 […]...

  7. [html] HTML5中的article和section有什么区别?

    [html] HTML5中的article和section有什么区别? 标签定义外部的内容,比如来自 blog 的文本。其内容独立于文档的其余部分。 标签定义文档中的节(section、区段)。比如章节...

  8. html5 canvas绘图-多边形的绘制 – zxmeigood

    View Post html5 canvas绘图-多边形的绘制 现在,我们已经将CANVAS绘图环境对象所支持 […]...

随机推荐

  1. linux学习笔记-shell-script相关知识

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一.shell script的执行方法 […]...

  2. Ubuntu 14中,Foxmail关联163邮箱账号时,总提示“密码错误”的解决方案

    不知道在什么时候,网易邮箱搞了个“客户端授权密码”功能,也就是说,原先输入自己设置的邮箱密码即可完成登录,但是 […]...

  3. HTMLCSS实现左侧固定宽度右侧内容可滚动

    HTMLCSS实现左侧固定宽度右侧内容可滚动 在做移动端页面的时候,经常会碰到一个div中分左右两个div,左 […]...

  4. 如何让eclipse恢复默认布局

    https://blog.csdn.net/howlaa/article/details/39178359 * […]...

  5. 一个小时快速搭建微信小程序

    「小程序」这个划时代的产品发布快一周了,互联网技术人都在摩拳擦掌,跃跃欲试。可是小程序目前还在内测,首批只发放 […]...

  6. UE4入门与精通 – 风恋残雪

    UE4入门与精通 2016-07-16 19:40  风恋残雪  阅读(30700)  评论(10)  编辑  […]...

  7. 如何在ASP.NET Core程序启动时运行异步任务(3)

    原文:Running async tasks on app startup in ASP.NET Core ( […]...

  8. 强大到无与伦比的Graphviz

    图1 hello world   尝试画复杂一些的图:   一直苦苦寻找用于图论的画图软件,偶然在Matrix […]...

展开目录

目录导航