iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何在HTML5中自定义一个mp3播放器
  • 393
分享到

如何在HTML5中自定义一个mp3播放器

2023-06-09 11:06:00 393人浏览 安东尼
摘要

如何在HTML5中自定义一个mp3播放器?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。audio对象src兼容.ogg .wav .mp3<audio co

如何在HTML5中自定义一个mp3播放器?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

audio对象

src兼容.ogg .wav .mp3

<audio controls src='data/imooc.wav'></audio>

width autoplay loop muted静音

<audio controls src='data/imooc.wav' autoplay loop width='500' height='500' muted></audio>

播放play()

 var myAudio = new Audio();        myAudio.src = 'data/imooc.wav';        myAudio.play();        btn.onclick = function(){            myAudio.play();        };

暂停pause()

pausenode.onclick = function(){                myAudio.pause();            };

当前播放的时间currentTime

音频总时长duration

   //返回音频的总长度            myAudio.addEventListener('canplay',function(){                durationNode.innerhtml = myAudio.duration;            });            //更新当前播放的时间            setInterval(function(){                currentNode.innerHTML = myAudio.currentTime;            },100);

音频源currentSrc

var myAudio = new Audio();        myAudio.src = 'data/imooc.mp3';        console.log(myAudio.currentSrc);

loop循环

myAudio.loop = true;

音频播放结束ended

myAudio.addEventListener('ended',function(){            console.log('音频播放结束');            console.log(myAudio.ended)        });

重新加载

 loadBtn.onclick = function(){            myAudio.load();        };

跳转到新的播放位置seeked / seeking

 myAudio.addEventListener('seeked',function(){            console.log('seeked');        });        myAudio.addEventListener('seeking',function(){            console.log('seeking');            sekingNum++;            seekingNum.innerHTML = sekingNum;        });

playbackRate设置当前播放速度

   myAudio.playbackRate = '15';        console.log(myAudio.playbackRate)

全屏requestFullScreen

 btnScreen.onclick = function(){            myAudio.WEBkitRequestFullScreen();        }

loop 循环

 myAudio.loop = true;

volumechange音量改变

  myAudio.addEventListener('volumechange',function(){            console.log('音频的声音改变了')        });

timeupdate音频正在播放状态

 myAudio.addEventListener('timeupdate',function(){            console.log('音频正在播放中...')        })

自定义mp3播放器

放图

如何在HTML5中自定义一个mp3播放器

<!doctype html> <html> <head>     <meta charset="utf-8">     <title></title>     <style type="text/CSS">*{margin: 0;padding: 0;list-style: none;}        .outerNode{width: 505px;height: 406px;position: absolute;left: 50%;top: 50%;margin: -204px 0 0 -253.5px;border: 1px solid #a6a18d;border-radius:8px;box-shadow: 0 0 16px #a6a18d; }.innerNode{width: 503px;height: 405px;border-top:1px solid #e1d1b9;border-left:1px solid #ceccbf;border-radius: 8px;overflow: hidden;border-right:1px solid #ceccbf;   }.topNode{width: 100%;height: 198px;border-bottom: 1px solid #787463;background: url(music/pic/fmt01.jpg) center center;background-size:cover; transition:.7s;position: relative;}.lineNode{    width: 100%;height: 46px;border-top: 1px solid #f9f7ee;border-bottom: 1px solid #a29d8a;background: url(musicimage/linebg.jpg) repeat-x; }.progressNode{width: 440px;height: 18px;float: left;margin:13px 0 0 28px;background: url(musicimage/progressbg.jpg) repeat-x;position: relative; }.progressNode .progressleft{    width: 7px;height: 100%;position: absolute;left: 0;    background: url(musicimage/leftNode.jpg);}.progressNode .progressright{    width: 7px;height: 100%;position: absolute;right: 0;    background: url(musicimage/rightNode.jpg);}.bottomNode{    width: 100%;height: 157px;border-top: 1px solid #a29d8a;    background: url(musicimage/bottombg.jpg) repeat-x;position: relative;}.lastNode{width: 75px;height: 74px;position: absolute;background: url(musicimage/lastBg.png) no-repeat;left: 118px;top: 39px;cursor: pointer;}.playNode{width: 95px;height: 94px;position: absolute;background: url(musicimage/playNode.png) no-repeat;left: 202px;top: 29px;cursor: pointer;}.nextNode{width: 75px;height: 74px;background: url(musicimage/rightbg.png) no-repeat;position: absolute;left: 306px;top: 39px;cursor: pointer;}.volumeNode{width: 37px;height: 32px;background: url(musicimage/volume.png) no-repeat; position: absolute;right: 43px;top: 58px;cursor: pointer;}.no_volumeNode{width: 37px;height: 32px;background: url(musicimage/no_volume.png) no-repeat; position: absolute;right: 43px;top: 58px;cursor: pointer;}.trueLine{position: absolute;left: 3px;top: 2px;height: 12px;width: 0%;    background: url(musicimage/green_bg.png) repeat-x;border-radius: 6px;     border-right: 1px solid #787463;}.musicName{color: white;position: absolute;bottom: 2px;left: 5px;}    </style></head><body>    <!-- outerNode 最外层的元素 -->    <div class='outerNode'>        <!-- innerNode 内层元素 -->        <div class='innerNode'>            <!-- topNode 封面图元素 -->            <div class='topNode'>                <!-- 音乐名称 -->                <div class='musicName'></div>            </div>            <!-- lineNode 进度条元素 -->            <div class='lineNode'>                <!-- 进度条-->                <div class='progressNode'>                    <div class='progressleft'></div>                    <div class='progressright'></div>                    <!-- 真正的进度条 -->                    <div class='trueLine'></div>                </div>            </div>            <!-- bottomNode 空间元素 -->            <div class='bottomNode'>                <!-- lastNode 上一曲的按钮-->                <div class='lastNode'></div>                <!-- playNode 播放暂停的按钮 -->                <div class='playNode'></div>                <!-- nextNode 下一曲的按钮 -->                <div class='nextNode'></div>                <!-- volumeNode 静音或非静音的按钮-->                <div class='volumeNode'></div>            </div>        </div>    </div>    <script type="text/javascript">        //播放暂停的按钮        //playBln 控制播放暂停的布尔值        var playBtn = document.querySelector('.playNode'),        playBln = true,        //控制声音的按钮        //volumeBln 控制声音的布尔值        volumeNode = document.querySelector('.volumeNode'),        volumeBln = true,        //进度条的选择器        trueLine = document.querySelector('.trueLine'),        //进度条外层的元素        progressNode = document.querySelector('.progressNode'),        //最外层元素        outerNode = document.querySelector('.outerNode'),        //选择一下封面背景        topNode = document.querySelector('.topNode'),        //下一首歌的按钮        nextNode = document.querySelector('.nextNode'),        //上一首歌的按钮        lastNode = document.querySelector('.lastNode'),        //音乐名称        musicName = document.querySelector('.musicName');        //给播放器添加js        //创建audio对象        var myAudio = new Audio();        //给audio对象一个 src        //所有的数据存在数组里面        let allMusic = [{            'MusicSrc':'music/mus/AcousticGuitar1.mp3',            'MusicPic':'music/pic/fmt01.jpg',            'MusicName':'AcousticGuitar1'        },{            'MusicSrc':'music/mus/AmazingGrace.mp3',            'MusicPic':'music/pic/fmt02.png',            'MusicName':'AmazingGrace'        },{            'MusicSrc':'music/mus/FeelsGood2B.mp3',            'MusicPic':'music/pic/fmt03.jpg',            'MusicName':'FeelsGood2B'        },{            'MusicSrc':'music/mus/FunBusyIntro.mp3',            'MusicPic':'music/pic/fmt04.jpg',            'MusicName':'FunBusyIntro'        },{            'MusicSrc':'music/mus/GreenDaze.mp3',            'MusicPic':'music/pic/fmt05.jpg',            'MusicName':'GreenDaze'        },{            'MusicSrc':'music/mus/Limosine.mp3',            'MusicPic':'music/pic/fmt06.jpg',            'MusicName':'Limosine'        }],Index = 0;        myAudio.src = allMusic[Index].MusicSrc;        //给封面赋值        topNode.style.backgroundImage = 'url('+allMusic[Index].MusicPic+')';        //给音乐名称        musicName.innerHTML = allMusic[Index].MusicName;        //谷歌浏览器不允许直接play        //myAudio.play();        //播放暂停的事件        playBtn.onclick = function(){            //myAudio.play();            playBln = !playBln;            if(playBln == false){                myAudio.play();            }            else{                myAudio.pause();            }        };        //声音的事件        volumeNode.onclick = function(){            volumeBln = !volumeBln;            if(volumeBln == false){                myAudio.volume = 0;                this.className = 'no_volumeNode';            }            else{                myAudio.volume = 1;                this.className = 'volumeNode';            }        };        //播放时 进度条的长度控制计算        myAudio.addEventListener('timeupdate',function(){            trueLine.style.width = myAudio.currentTime / myAudio.duration * 100 + '%';        });        //点击progressNode元素 让进度条直接到达这个位置        progressNode.onclick = function(e){            var ev = e || event;            //算法 就是 算出 点击的位置 在 外层进度条的 多少像素            //需要一个鼠标坐标点 减去 外层元素的 offsetLeft 和 最外层元素的offsetLeft             // 320秒 *  0.50 = 160秒            myAudio.currentTime = myAudio.duration * ((ev.clientX - (this.offsetLeft + outerNode.offsetLeft))/this.offsetWidth);            trueLine.style.width = ((ev.clientX - (this.offsetLeft + outerNode.offsetLeft))/this.offsetWidth) * 100 + '%';        };        //下一首歌的事件        nextNode.onclick = function(){            Index ++;            if(Index == allMusic.length){                Index = 0;            }            MusicPlayFn();        };        //音乐播放的函数        function MusicPlayFn(){            myAudio.src = allMusic[Index].MusicSrc;            myAudio.currentTime = 0;            trueLine.style.width = '0%';            if(playBln == false){                myAudio.play();            }            else{                myAudio.pause();            }            //给封面赋值            topNode.style.backgroundImage = 'url('+allMusic[Index].MusicPic+')';            //给音乐名称            musicName.innerHTML = allMusic[Index].MusicName;        }        //上一首歌的点击事件        lastNode.onclick = function(){            Index --;            if(Index == -1){                Index = allMusic.length-1;            }            MusicPlayFn();        };    </script></body></html>

关于如何在HTML5中自定义一个mp3播放器问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: 如何在HTML5中自定义一个mp3播放器

本文链接: https://www.lsjlt.com/news/255833.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在HTML5中自定义一个mp3播放器
    如何在HTML5中自定义一个mp3播放器?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。audio对象src兼容.ogg .wav .mp3<audio co...
    99+
    2023-06-09
  • 怎么在HTML5中自定义一个视频播放器
    这期内容当中小编将会给大家带来有关怎么在HTML5中自定义一个视频播放器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。video对象兼容性写法<video controls>&nbs...
    99+
    2023-06-09
  • 如何实现自定义html5播放器
    这篇文章给大家分享的是有关如何实现自定义html5播放器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果预览点我查看 源码仓库 。核心思路我相信一定会有些没有接触过制作自定义播...
    99+
    2024-04-02
  • html5如何实现自定义播放器
    这篇文章主要为大家展示了“html5如何实现自定义播放器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html5如何实现自定义播放器”这篇文章吧。  ...
    99+
    2024-04-02
  • Python如何创建一个自定义视频播放器
    这篇文章主要讲解了“Python如何创建一个自定义视频播放器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python如何创建一个自定义视频播放器”吧!1、安装vlc的64位版本。2、安装p...
    99+
    2023-07-05
  • Angular中如何自定义视频播放器
    本篇内容主要讲解“Angular中如何自定义视频播放器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Angular中如何自定义视频播放器”吧!实现的功能如下:播...
    99+
    2024-04-02
  • Android开发中怎么实现一个MP3播放器
    这篇文章给大家介绍Android开发中怎么实现一个MP3播放器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在android中播放mp3非常简单,也是项目中经常使用的,比如说要做项目的背景音乐,应用中某些功能的提示音等...
    99+
    2023-05-31
    android roi
  • html5自定义播放器核心代码怎么写
    今天就跟大家聊聊有关html5自定义播放器核心代码怎么写,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 网页html ...
    99+
    2024-04-02
  • 怎么在VSCode中自定义一个html5模板
    这篇文章给大家介绍怎么在VSCode中自定义一个html5模板,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。(一)新建html快捷键当我们想在VSCode中新建html代码时,可以 输入! 然后回车或者Tab即可自动生...
    99+
    2023-06-09
  • Python创建一个自定义视频播放器的实现
    要创建一个自定义视频播放器的实现,可以使用Python的多媒体库pygame。以下是一个简单的示例代码:```pythonimpor...
    99+
    2023-08-08
    Python
  • HTML5中Video属性及自定义播放器的示例分析
    这篇文章主要介绍了HTML5中Video属性及自定义播放器的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 使用方法: &nbs...
    99+
    2024-04-02
  • 如何在Html5中自定义字体
    如何在Html5中自定义字体?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。第一步:使用@font-faceMDN概述这是一个叫做@font-face 的CSS ...
    99+
    2023-06-09
  • html5中如何实现video全屏播放/自动播放
    这篇文章主要介绍了html5中如何实现video全屏播放/自动播放,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。近期开始开发公司新版官网, 首页顶部(header)是一个全屏...
    99+
    2023-06-09
  • 如何在HTML5中自定义属性
    本篇文章为大家展示了如何在HTML5中自定义属性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。HTML5 自定义属性网站中经常会看到以data-开头的属性定义,虽然W3C不认定,但最新HTML5规定...
    99+
    2023-06-09
  • 如何用JavaScript开发一款自定义配置视频播放器
    如何用JavaScript开发一款自定义配置视频播放器,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前言这几天抽空就一直在搞一个自定义视频...
    99+
    2024-04-02
  • Keras中如何定义一个自定义的层
    要定义一个自定义的层,需要继承keras.layers.Layer类,并重写__init__和call方法。下面是一个简单的示例: ...
    99+
    2024-03-14
    Keras
  • 怎么在HTML5页面中实现一个音乐播放器
    这篇文章给大家介绍怎么在HTML5页面中实现一个音乐播放器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。<audio id="music1">浏览器不支持audio标签<...
    99+
    2023-06-09
  • 如何在Java中自定义一个枚举类
    本文章向大家介绍如何在Java中自定义一个枚举类的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序...
    99+
    2023-06-06
  • 怎么在HTML5中通过自定义元素实现播放焦点图动画
    这期内容当中小编将会给大家带来有关怎么在HTML5中通过自定义元素实现播放焦点图动画,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。HTML代码<div class="parall...
    99+
    2023-06-09
  • 如何在Android中实现一个音乐播放器
    如何在Android中实现一个音乐播放器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实现过程导入项目所需的音乐文件、图标、背景等创建一个raw文件夹,将音乐文...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作