浏览器不支持audio标签
我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么在HTML5页面中实现一个音乐播放器

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么在HTML5页面中实现一个音乐播放器

这篇文章给大家介绍怎么在HTML5页面中实现一个音乐播放器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

<audio id="music1">浏览器不支持audio标签<source  class="lazy" data-src="media/Beyond - 光辉岁月.mp3"></source></audio><audio id="music2">浏览器不支持audio标签<source  class="lazy" data-src="media/Daniel Powter - Free Loop.mp3"></source></audio><audio id="music3">浏览器不支持audio标签<source  class="lazy" data-src="media/周杰伦、费玉清 - 千里之外.mp3"></source></audio>

下面的播放列表也对应三个audio标签:

<div id="playList">    <ul>        <li id="m0">Beyond-光辉岁月</li>        <li id="m1">Daniel Powter-Free Loop</li>        <li id="m2">周杰伦、费玉清-千里之外</li>    </ul></div>

接下来我们就开始逐步实现上面提到的功能吧,先来完成播放和暂停功能,在按下播放按钮时我们要做到进度条随歌曲进度前进,播放时间也逐渐增加,同时播放按钮变成暂停按钮,播放列表的样式也对应改变。

在做功能之前我们要先把三个audio标签获取id后存到一个数组中,供后续使用。

var music1= document.getElementById("music1");var music2= document.getElementById("music2");var music3= document.getElementById("music3");var mList = [music1,music2,music3];

2播放和暂停:

我们现在就可以完成播放按钮的功能啦,首先设置一个标志,用来标记音乐的播放状态,再为数组的索引index设置一个默认值:

然后对播放状态进行判断,调用对应的函数,并修改flag的值和列表对应项目样式:

function playMusic(){if(flag&&mList[index].paused){            mList[index].play();        document.getElementById("m"+index).style.backgroundColor = "#A71307";document.getElementById("m"+index).style.color = "white";progressBar();        playTimes();        play.style.backgroundImage = "url(media/pause.png)";        flag = false;}else{        mList[index].pause();        flag = true;        play.style.backgroundImage = "url(media/play.png)";}}

上面的代码中调用了多个函数,其中播放和暂停是audio标签自带的方法,而其他的函数则是我们自己定义的。下面我们就来看一下这些函数是怎么实现的,又对应了哪些功能吧。

3进度条和播放时间:

 首先是进度条功能,获取歌曲的全部时长,然后再根据当前播放的进度与进度条总长度相乘计算出进度条的位置。

function progressBar(){var lenth=mList[index].duration;timer1=setInterval(function(){        cur=mList[index].currentTime;//获取当前的播放时间        progress.style.width=""+parseFloat(cur/lenth)*300+"px";        progressBtn.style.left= 60+parseFloat(cur/lenth)*300+"px";},10)}

下面是改变播放时间功能,这里我们设置一个定时函数,每隔一段时间来执行一次以改变播放时间。因为我们获取到的歌曲时长是以秒来计算,所以我们要利用if语句对时长判断来进行换算,将播放时间改为以几分几秒的形式来显示。

function playTimes(){timer2=setInterval(function(){        cur=parseInt(mList[index].currentTime);//秒数        var minute=parseInt(cur/60);        if (minute<10) {            if(cur%60<10){                playTime.innerHTML="0"+minute+":0"+cur%60+"";            }else{                playTime.innerHTML="0"+minute+":"+cur%60+"";            }        } else{            if(cur%60<10){                playTime.innerText= minute+":0"+cur%60+"";            }else{                playTime.innerText= minute+":"+cur%60+"";            }         } },1000);}

4调整播放进度和音量:

接下来我们再来完成一下通过进度条调整播放进度和调整音量功能。

调整播放进度功能利用了event对象来实现,因为offsetX属性只有IE事件具有,所以推荐使用IE浏览器查看效果。先对进度条添加事件监听,当在进度条上点击鼠标时,获取鼠标的位置,并根据位置除以进度条的总长度来计算当前的播放进度,然后对歌曲进行设置。

//调整播放进度total.addEventListener("click",function(event){var e = event || window.event;document.onmousedown = function(event){        var e = event || window.event;        var mousePos1 = e.offsetX;        var maxValue1 = total.scrollWidth;        mList[index].currentTime = (mousePos1/300)*mList[index].duration;        progress.style.width = mousePos1+"px";        progressBtn.style.left = 60+ mousePos1 +"px";}})

下面是调整音量功能,音量的调整我们采用拖动的形式实现,思路也是对音量条的按钮球添加事件监听,然后根据拖动的位置来计算按钮球相对于音量条整体的位置,最后根据计算结果与音量相乘得出当前音量:

volBtn.addEventListener("mousedown",function(event){var e = event || window.event;var that =this;//阻止球的默认拖拽事件e.preventDefault();document.onmousemove = function(event){var e = event || window.event;var mousePos2 = e.offsetY;var maxValue2 = vol.scrollHeight;if(mousePos2<0){            mousePos2 = 0;}if(mousePos2>maxValue2){            mousePos2=maxValue2;}mList[index].volume = (1-mousePos2/maxValue2);console.log(mList[index].volume);volBtn.style.top = (mousePos2)+"px";volBar.style.height = 60-(mousePos2)+"px";document.onmouseup = function(event){            document.onmousemove = null;            document.onmouseup = null;}}})

5歌曲切换

 最后我们再来实现比较复杂的歌曲切换功能。

先来看用上一首和下一首按钮进行切换,在切换音乐时我们要注意的问题有下面几个:第一,我们要停止当前播放的音乐,转而播放下一首音乐;第二,要清空进度条和播放时间,重新计算;第三,歌曲信息要随之改变,播放器下面的播放列表样式也要变化。在弄清楚上面三点以后我们就可以开始实现功能了。

//上一曲function prevM(){clearInterval(timer1);clearInterval(timer2);stopM();qingkong();cleanProgress();--index;if(index==-1){        index=mList.length-1;}clearListBgc();document.getElementById("m"+index).style.backgroundColor = "#A71307";document.getElementById("m"+index).style.color = "white";changeInfo(index);mList[index].play();progressBar();playTimes();if (mList[index].paused) {    play.style.backgroundImage = "url(media/play.png)";}else{    play.style.backgroundImage = "url(media/pause.png)";}} //下一曲function nextM(){clearInterval(timer1);clearInterval(timer2);stopM();qingkong();cleanProgress();++index;if(index==mList.length){    index=0;}clearListBgc();document.getElementById("m"+index).style.backgroundColor = "#A71307";document.getElementById("m"+index).style.color = "white";changeInfo(index);mList[index].play();progressBar();playTimes();if (mList[index].paused) {    play.style.backgroundImage = "url(media/play.png)";}else{    play.style.backgroundImage = "url(media/pause.png)";}}

下面的代码是点击列表切换歌曲。

m0.onclick = function (){clearInterval(timer1);clearInterval(timer2);qingkong();flag = false;stopM();index = 0;pauseall();play.style.backgroundImage = "url(media/pause.png)";clearListBgc();document.getElementById("m0").style.backgroundColor = "#A71307";document.getElementById("m"+index).style.color = "white";mList[index].play();cleanProgress();progressBar();changeInfo(index);playTimes();}m1.onclick = function (){clearInterval(timer1);clearInterval(timer2);flag = false;qingkong();stopM();index = 1;pauseall();clearListBgc();play.style.backgroundImage = "url(media/pause.png)";document.getElementById("m1").style.backgroundColor = "#A71307";document.getElementById("m"+index).style.color = "white";mList[index].play();cleanProgress();changeInfo(index);progressBar();playTimes();}m2.onclick = function (){clearInterval(timer1);clearInterval(timer2);flag = false;qingkong();stopM();index = 2;pauseall();play.style.backgroundImage = "url(media/pause.png)";clearListBgc();document.getElementById("m2").style.backgroundColor = "#A71307";document.getElementById("m"+index).style.color = "white";mList[index].play();cleanProgress();changeInfo(index);progressBar();playTimes();}

通过播放列表来切换歌曲与通过按钮切换的思路差不多,只是根据对应的列表项来设置当前应该播放哪首歌曲。

上面切换歌曲的函数中都调用了几个方法,下面我们来看看这些方法的用途都是什么吧。

首先是切换歌曲信息:

function changeInfo(index){if (index==0) {    musicName.innerHTML = "光辉岁月";    singer.innerHTML = "Beyond";}if (index==1) {    musicName.innerHTML = "Free Loop";    singer.innerHTML = "Daniel Powter";}if (index==2) {    musicName.innerHTML = "千里之外";    singer.innerHTML = "周杰伦、费玉清";}}

然后清空两个定时器:

//将进度条置0function cleanProgress(timer1){if(timer1!=undefined){    clearInterval(timer1);}progress.style.width="0";progressBtn.style.left="60px";} function qingkong(timer2){ if(timer2!=undefined){    clearInterval(timer2);}}

再把播放的音乐停止,并且将播放时间恢复。

function stopM(){if(mList[index].played){    mList[index].pause();    mList[index].currentTime=0;    flag=false;}}

最后的最后,改变下面播放列表的样式:

function clearListBgc(){document.getElementById("m0").style.backgroundColor = "#E5E5E5";document.getElementById("m1").style.backgroundColor = "#E5E5E5";document.getElementById("m2").style.backgroundColor = "#E5E5E5";document.getElementById("m0").style.color = "black";document.getElementById("m1").style.color = "black";document.getElementById("m2").style.color = "black";}

关于怎么在HTML5页面中实现一个音乐播放器就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么在HTML5页面中实现一个音乐播放器

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

下载Word文档

猜你喜欢

怎么在HTML5页面中实现一个音乐播放器

这篇文章给大家介绍怎么在HTML5页面中实现一个音乐播放器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

如何在Android中实现一个音乐播放器

如何在Android中实现一个音乐播放器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实现过程导入项目所需的音乐文件、图标、背景等1.创建一个raw文件夹,将音
2023-06-15

Android开发中怎么实现一个音乐播放器功能

Android开发中怎么实现一个音乐播放器功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。具体实现首先是布局文件中添加了如下代码,这些代码就是实现控制台的,给整体设置了一
2023-05-31

HTML音乐播放器怎么实现

要实现一个基本的HTML音乐播放器,可以按照以下步骤进行:1. 创建一个``元素用于播放音乐,并设置`src`属性指定音乐文件的路径。```html
2023-08-08

怎么在Dreamweaver里面添加音乐播放器背景音乐

这篇文章主要讲解了“怎么在Dreamweaver里面添加音乐播放器背景音乐”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Dreamweaver里面添加音乐播放器背景音乐”吧!   在D
2023-06-08

怎么在c#中使用winform制作一个音乐播放器

这篇文章将为大家详细讲解有关怎么在c#中使用winform制作一个音乐播放器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。AxWindowsMediaPlayer的方法1 首先新建一个页面
2023-06-14

Python+wxPython实现一个简单的音乐播放器

Python+wxPython音乐播放器本指南介绍了如何使用Python和wxPython创建一个音乐播放器。它从安装依赖项开始,然后一步步指导你创建GUI、播放控件、加载音乐文件和处理事件。可选功能包括进度条、歌曲列表和音量控制。指南还提供了完整的代码,以便于实现。使用本指南,你可以构建一个可跨平台使用的基本音乐播放器。
Python+wxPython实现一个简单的音乐播放器
2024-04-23

Android开发中如何实现一个音乐播放器功能

Android开发中如何实现一个音乐播放器功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。需求1:将内存卡中的MP3音乐读取出来并显示到列表当中1.从数据库中查询所有音乐
2023-05-31

基于Python怎么实现音乐播放器

本篇内容主要讲解“基于Python怎么实现音乐播放器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Python怎么实现音乐播放器”吧!一、环境设置第一步引入必须的各类包import osim
2023-06-30

怎么在Android中利用SeekBar实现音乐播放器功能

怎么在Android中利用SeekBar实现音乐播放器功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一.Demo简介 利用AIDL为Activity绑定服务,利用Han
2023-05-31

在Java项目中使用 swing制作一个音乐播放器

这期内容当中小编将会给大家带来有关在Java项目中使用 swing制作一个音乐播放器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。实现代码: package com.baiting;import java
2023-05-31

利用Android怎么编写一个本地音乐播放器

利用Android怎么编写一个本地音乐播放器?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。音乐播放需要调用service,在此,只是简单梳理播放流程。public class
2023-05-31

微信小程序怎么实现音乐播放器

本篇内容介绍了“微信小程序怎么实现音乐播放器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   开始构建小程序首页。  第一步,我们需要创建
2023-06-26

使用java怎么制作一个音乐播放器功能

这期内容当中小编将会给大家带来有关使用java怎么制作一个音乐播放器功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体内容如下package baidu;import java.awt.*;impor
2023-05-31

怎么使用C语言实现音乐播放器

本文小编为大家详细介绍“怎么使用C语言实现音乐播放器”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用C语言实现音乐播放器”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。介绍该程序是一个小的DEMO,实现了以
2023-07-05

PHP怎么实现音乐播放器的隐藏功能

要实现音乐播放器的隐藏功能,可以使用PHP结合JavaScript来实现。首先,在PHP中定义一个变量来表示音乐播放器的隐藏状态,例如$hidden。默认情况下,$hidden的值为false,表示音乐播放器是可见的。然后,在页面中使用Ja
2023-08-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录