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移动端触摸事件

    一、移动端事件问题 1.click事件300ms延迟问题 2007年第一代iphone发布,移动端Safari […]...

  2. html5删除的标签

    html5删除的标签:basefont、big、center、font、s、strike、tt、u、frame、noframes、frameset、bgsound、blink、marquee、applet、isindex、listing等...

  3. HTML5学习笔记

    HTML5学习笔记 概念网页是构成网站的基本元素;网站是相关网页的集合;网页是构成网站的基本元素,他是由图片链接、文字、声音视频等元素组成;通常看到的网页以HTML为后缀,因此俗称HTML文件; 定义:HTML是超文本标记语言H...

  4. HTML5 Canvas 概述

      本文中,我们将探索如何使用HTML5的Canvas API.Canvas API很酷,我们可以通过它来动态 […]...

  5. html5新特性(二)

    一、新音频播放HTML5 提供了播放音频文件的标准,即使用 元素 control 属性供添加播放、暂停和音量控件。  在 与 之间你需要插入浏览器不支持的元素的提示文本 。...

  6. 五大主流浏览器 CSS3 和 HTML5 兼容性大比拼

    各大浏览器对 CSS3 和 HTML5 的支持越来越完善,曾经让多少前端开发人员心碎的IE系也开始拥抱标准。就 […]...

  7. HTML5 & CSS3初学者指南(1) – 编写第一行代码

    本文为HTML5&CSS3初学者指南系列的第一篇文章,介绍HTML5和CSS3的基本知识。 介绍 网络 […]...

  8. 8个惊艳的 HTML5 和 JavaScript 特效

    这篇文章向大家展示8个惊艳的 HTML5 和 JavaScript 特效。作为下一代网页语言,HTML5 拥有 […]...

随机推荐

  1. Coursera课程笔记—-C程序设计进阶—-Week 5

    指针(二) (Week 5) 字符串与指针 指向数组的指针 int a[10]; int *p; p = a; […]...

  2. 记录接口执行时间的中间件

      项目中有时接口访问时间过长,但是通过浏览器F12查看时,接口访问时间很正常,所以就很奇怪,于是写一个中间件 […]...

  3. Linux 安装JDK(jdk-8u121-linux-x64.tar.gz)

    Linux 安装JDK(jdk-8u121-linux-x64.tar.gz) 一、JDK准备      1. […]...

  4. 优秀示例:一组创意的手机注册和登录界面设计

    这篇文章中接着给大家分享创意的手机应用程序界面设计示例,一组拥有出色的用户体验的注册和登录界面设计。能够帮助你 […]...

  5. 修改SDE最大连接数 – gisoracle

    View Post 修改SDE最大连接数 使用arccatalog连接数据库出现 :“Failed to co […]...

  6. C# 正则表达式及常用正则表达式

    元字符 描述 .点 匹配任何单个字符。例如正则表达式r.t匹配这些字符串:rat、rut、r t,但是不匹配r […]...

  7. jquery 中的框架

    DWZ 国产Ajax RIA开源框架    Ninja UI 框架    提供页面插件 angela ui框架 […]...

  8. 浅谈数据仓库建设中的数据建模方法

    ​   本文转载自IBM Developer 社区       所谓水无定势,兵无常法。不同的行业,有不同行业 […]...

展开目录

目录导航