音乐播放器

article/2025/11/5 18:06:36

 微笑微笑用HTML做了个音乐播放器,可以循环播放,选择歌曲,以及自动播放下一首,运用了js和json知识,下面是效果图和源码,有兴趣的可以试试哦

效果图:


源码:html

<span style="color:#999999;"><!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>音乐播放器</title><script type="text/javascript" src="js/jquery-2.1.1.min.js" ></script><script src="js/music.js" type="text/javascript" charset="utf-8"></script><style>* {margin: 0 auto;padding: 0;}.page {position: absolute;width: 100%;height: 100%;}.header {width: 100%;height: 44px;background: lightcoral;position: relative;}.title {font-size: 20px;color: white;float: left;margin: 7px 10px;}.search {float: right;width: 30px;margin: 7px 10px;}.earch {float: right;width: 30px;margin: 7px 10px;}.musicBox{width: 100%;position: absolute;top: 44px;bottom: 50px;background:url(音乐播放器资源/img/bg.jpg);background-size:100%  100%;/*内容超出范围部分滚动*/overflow: scroll;}/*定义一条音乐的列表,每行的样式 在js中动态加载到音乐列表每一行的div上*/.music{width: 100%;height: 60px;border-bottom: 2px solid gray;margin: 10px 20px;position: relative;}.music img{width: 40px;height: 40px;margin: 10px 20px;}.music p{color: goldenrod;position: absolute;left: 85px;top: 10px;}/*音乐播放时所对应的行的样式*/.musicPlay{background: rgba(120,10,60,0.4);}.musicPlay p{color: red;}/*设置footer 的样式*/.footer{width: 100%;height: 50px;position: absolute;bottom: 0px;background: lightcoral;}.range{width: 100%;position: absolute;top: -3px;left: 0px;}.pic{width: 30px;height: 30px;position: absolute;left: 10px;top: 12px;border-radius: 15px;animation: picAn 2s infinite linear;}@keyframes picAn{from{}to{transform: rotate(360deg);}}/*控制按钮的样式*/.play{width: 20px;height: 20px;position: absolute;left: 45%;top: 10px;}.pre{width: 30px;height: 30px;position: absolute;left: 0px;top: 5px;}.next{width: 30px;height: 30px;position: absolute;right: 0px;top: 5px;}.love{position: absolute;right: 5px;top: 15px;width: 20px;height: 30px;}.musicControls{position: absolute;width: 50%;left: 25%;top: 10px;}</style></head><body><div class="page"><audio id="audio"></audio><div class="header"><h3 class="title">我的音乐</h3><img class="search" src="音乐播放器资源/img/search.png" /><img class="earch" src="音乐播放器资源/img/earch.png" /></div><!--显示音乐类表--><div class="musicBox"><!--内容要通过读取json文件来获得   音乐列表--> </div><!--控制台--><div class="footer"><!--进度条--><input type="range" class=" range" /><img src="音乐播放器资源/img/deng.jpg" class="pic" /><!--控制按钮--><div class="musicControls"><img src="音乐播放器资源/img/pre.png" class="pre" /><img src="音乐播放器资源/img/play.png" class="play" /><img src="音乐播放器资源/img/next.png" class="next" /></div><img src="音乐播放器资源/img/shoucang.png" class="love" /></div></div></body></html></span>
下面是js代码:

	$(document).ready(function(){//音乐播放器需要,播放器对象player,音乐对象,用play去播放music对象
//		创建music对象,用于保存音乐的属性function Music(){}Music.prototype.src= "";Music.prototype.img ="";Music.prototype.num="";Music.prototype.musicName="";Music.prototype.name="";//创建player对象 function Player(){}Player.prototype.audio = document.getElementById("audio");
//		目前播放第几首歌Player.prototype.playIndex=0;Player.prototype.isplay = false;
//		定义播放器的方法Player.prototype.rangUpdate = function(){//this.audio.ontimeupdate =function() 音乐播放器播放音乐时监听//把进度条和音乐的时间长度结合起来//音乐每播放一秒进读条就会前进一个单位  this.duration音乐的总长度this.audio.ontimeupdate =function(){//把进度条的总长度设为音乐的总长度$(".range").attr("max",this.duration);//设置进度条的值为播放的时间$(".range").val(this.currentTime);//当一首歌播放完再去播放下一首if (this .currentTime == this.duration ) {player.nextMusic();}}};Player.prototype.playMusic =function(){//向播放器添加音乐路径$(this.audio).attr("src",musicModels[this .playIndex].src);this .audio.play();//换音乐图片$(".pic").attr("src",musicModels[this.playIndex].img);//波让其的状态this .isplay= true;};Player.prototype.nextMusic = function(){//越界问题if (this .playIndex >= musicModels.length - 1) {this.playIndex = 0;}else{this.playIndex = this .playIndex + 1;}//改变音乐类表的对应项的样式this.playMusic();$(".music").eq(this.playIndex).addClass("musicPlay").siblings().removeClass("musicPlay");};Player.prototype.preMusic =function(){if (this .playIndex <= 0) {this.playIndex = musicModels.length-1;}else{this.playIndex = this .playIndex - 1;}//改变音乐类表的对应项的样式this.playMusic();$(".music").eq(this.playIndex).addClass("musicPlay").siblings().removeClass("musicPlay");};Player.prototype.playOrPause = function(){if(this.isplay){this.audio.pause();$(".play").attr("src","音乐播放器资源/img/stop.png");}else{this.audio.play();$(".play").attr("src","音乐播放器资源/img/play.png");}this.isplay = !this.isplay;};
//		js文件从此向下
//      创建音乐数组var musicModels = [];//创建音乐播放器对象var player= new Player();/*Ajax 目的是在js中实现异步操作 * JS是单线程 的,在单线程中模拟java oc 多线程 开辟异步任务,,浏览器的引擎去做一步操作,* 实质上不是开辟一个子线程,而是创建一个异步任务* 优点:* 1.不需要用户等待服务器相应* 在异步派发xmlHTTPRequest 请求后,马上把控制权收回就被返回浏览器空页面* 界面不会出现白板,等待后台服务器得到请求后,再去执行完成方法,在方法中填写界面数据的代码* 2.不需要加载整个页面只需要更新局部数据,节省流量,减轻服务器压力* * 为xmlHTTPRequest 设置一个回调函数,服务器数据到达时触发函数,发送请求时可以带少量的参数* 实现按需去数据* $.ajax(),这是jQuery 对ajax的封装的最基础的函数,通过这个函数可以实现异步通讯功能var configObj= {
//		 	method:数据提交方式 get OR postURL:请求的网址async:是否异步,默认truedata:post请求的参数dataType :服务器返回的类型,xml string jsonsuccess:请求成功后的回调方法error :请求失败后的方法}$.ajax(configObj);完成异步请求二、$post()只能采取post请求三、$get()四、$getJSON( url ,完成回调);可以请求本地路径的内容* * * */$.getJSON("pbl.json",function(data){
//			console.log(data);for (var i=0;i<data.length;i++) {var music = new Music();music.src= "音乐播放器资源/" + data[i].src;music.img= "音乐播放器资源/" + data[i].img;music.musicName = data[i].musicName;music.name = data[i].name;music.num = data[i].num;musicModels.push(music);}//播放音乐isertData();player.playMusic();player.rangUpdate();$(".music").eq(player.playIndex).addClass("musicPlay").siblings().removeClass("musicPlay");});function isertData(){//先要遍历数据源数组/*html5 中添加了一个data-*的方式 来自定义属性用data-前缀,添加到自定义属性名上,这样的结构可以存储少量的数据* */for (var i=0;i<musicModels.length;i++) {
//				/创建一个DIV元素表示,音乐中的一行,给这个div添加music样式
//和绑定自定义属性index来记录这个div是列表中的第几行var $musicDiv = $("<div class = 'music' data-index = "+ i +"></div>");
//				将这个div添加到musicBox 中$(".musicBox").append($musicDiv);
//				设计musicdiv中的子元素,子元素有两个,一个是歌曲的图片,歌曲的信息
//              创建一个img 显示歌曲图片var $img = ("<img src =" + musicModels[i].img+" />");$musicDiv.append($img);
//				创建一个音乐信息的p标签var $musicMsg = $("<p>"+musicModels[i].musicName+"     演唱者:"+musicModels[i].name+"</p>");$musicDiv.append($musicMsg);}$(".music").click(function(e){//从被选中的div中读取自定义 index属性player.playIndex = $(this ).data("index");player.playMusic();//被选中的div设置musicplay样式,该div的兄弟元素要溢出musicplay样式//保证只有一个div有musicplay$(this).addClass("musicPlay").siblings().removeClass("musicPlay");});}$(".play").click(function(){player.playOrPause();});$(".next").click(function(){player.nextMusic();});$(".pre").click(function(){player.preMusic();});})





http://chatgpt.dhexx.cn/article/pksuWrFq.shtml

相关文章

MusicPlay播放器

文章目录 一丶前端布局二丶Activity三丶Service实验演示 一丶前端布局 Layout的框架 一个自定义的音乐播放器&#xff0c;页面布局大致如下 二丶Activity 首先定义控件 // 获取界面中显示歌曲标题、作者文本框TextView title, author;// 喜欢&#xff0c;播放&#xff0c;暂…

MusicPlay 音乐播放器(纯前端)

纯Css,js前端音乐播放器,界面UI比较好。我特别喜欢,适合二次开发,调用了网易云第三方接口以及将歌曲链接导出可以访问的歌曲链接,实现了异步歌曲搜索播放,以及异步显示歌词等.结合html5 新特性实现歌曲暂停,下一首,快进等等.为大二前端练手项目.采用渐变质背景 是前端练手的好…

HTML5+JS实现简易的音乐播放器

HTML5JS实现简易的音乐播放器 播放器实现的功能 播放/暂停音乐切换歌曲&#xff0c;上/下一首歌音量最大或静音音乐播放时间实时变化进度条拖拽歌曲图片切换 播放器效果展示 代码展示 html <div class"musicBox" id"musicBox"><audio src"…

音乐播放器MusicBox

音乐播放器MusicBox 功能界面分析 界面要求较为简洁&#xff0c;仅需两个TextView&#xff0c;用于输出音乐名称及歌手姓名&#xff0c;下方三个ImageButton&#xff0c;用于播放&#xff0c;暂停或切换上一首&#xff0c;下一首歌曲。 实现 总体规划 在MainActivity中&a…

索尼音乐应用android,Sony Music Center

Sony Music Center是全新的索尼音乐中心也是原来的songpal应用&#xff0c;作为sony手机上面的专业播放器的软件&#xff0c;它能够为用户播放各种音乐上面的内容&#xff0c;它可以直接的为用户解析各种音乐的内容&#xff0c;让用户能够随时的在手机上面收听到自己所喜欢的无…

MusicLibrary:一个丰富的音乐播放封装库

code小生,一个专注 Android 领域的技术分享平台 作者&#xff1a;lizixian18链接&#xff1a;https://github.com/lizixian18/MusicLibrary声明&#xff1a;本文是 lizixian18 投稿,转载等请联系作者获得授权。 MusicLibrary 一个丰富的音乐播放封装库&#xff0c;针对快速集成…

MusicBox

MusicBox 编写音乐盒代码&#xff0c;并添加音乐播放的 上一首 和 下一首 控制。 1.添加所需的图片以及音乐文件&#xff1b; 2.编写xml文件&#xff0c;上一首、下一首、暂停、播放按钮以及歌曲的名字和作者 <?xml version"1.0" encoding"utf-8"?&…

Musicplayer

Musicplayer Python 音乐播放器 功能&#xff1a; 首先可以实现本地音乐的播放&#xff0c;能够打开电脑端的文件&#xff0c;文件中进行多选&#xff0c;实现暂停、上一曲、下一曲的功能。在此基础上&#xff0c;完成随机播放列表和网络端下载的功能。 设计方法&#xff1a; 本…

MusicBox(音乐播放器)

这两天做了一个小型的音乐播放器&#xff0c;基本功能都已实现&#xff0c;同时也让我对CSliderCtrl&#xff0c;MCI_OPEN_PARMS以及控件之间的消息映射&#xff0c;数据转换等有了更深入的理解&#xff0c;下面是自己编程的详细过程&#xff1a; 1 首先将控件的位置都摆好&a…

musicbox使用方法_使用Pi MusicBox收听流音乐

musicbox使用方法 在用Raspberry Pi 控制圣诞树灯的项目完成之后&#xff0c;下一个项目是什么&#xff1f; 我最终开始尝试使用Pi Musicbox进行修补&#xff0c;这是Mopidy的Raspbian的一种版本 &#xff0c;它允许用户在“无头”的Raspberry Pi上播放各种流媒体服务&#xff…

推荐一个高大上的网易云音乐命令行播放工具:musicbox

网易云音乐上有很多适合程序猿的歌单&#xff0c;但是今天文章介绍的不是这些适合程序员工作时听的歌&#xff0c;而是一个用Python开发的开源播放器&#xff0c;专门适用于网易云音乐的播放。这个播放器的名称为MusicBox, 特色是用命令行版本执行音乐的播放。 github地址&…

移动开发技术(三)MusicBox

实验要求 使用广播机制&#xff0c;编写音乐盒代码&#xff0c;添加音乐播放的播放、暂停、停止、上一首和下一首控制 实验步骤 一、布局设置 添加一个LinearLayout&#xff0c;选择垂直分布。在里面添加两个LinearLayout&#xff1a; ①music_show&#xff1a;用于展示图片…

Gap Statistic算法详解

在Kmean算法确定K值的问题里&#xff0c;可以使用手肘法&#xff0c;也可以用Gap statistic 算法。手肘法的缺点是不够自动化&#xff0c;而Gap不再需要“手肘法”式的肉眼判断&#xff0c;而只需要找出使Gap Statistic最大的K值即可。因此&#xff0c;Gap和适用于批量化作业。…

IDEA 统计插件Statistic:查看你的代码量

最近接触了一款IDEA统计代码量的插件Statistic&#xff0c;简介一下Statistic的安装。 一、插件下载安装 File->Settings->Plugins&#xff0c;输入Statistic&#xff0c;点击install,安装完后选择重启idea。 二、运行使用 重启完后&#xff0c;点击refesh即可看到代码量…

idea中安装统计代码statistic插件

百度一圈都是直接在idea中安装statistic插件&#xff0c;就不再重复 1.从官网下载&#xff1a;http://plugins.jetbrains.com/plugin/4509-statistic/versions 插件包 到本地 2.选择从本地安装 3. 4.重启idea 5.工具栏

探索 t Statistic的稳健性

探索 t Statistic的稳健性 探索t-statistic 的稳健性 假设有2组数据&#xff0c;x1,…,xm; y1,…,yn。 t-test的假设为两组数据的平均值无差异 即&#xff1a; 令X和Sx为为x数组的平均值和标准差&#xff0c;Y和Sy为y数组的平均值和标准差&#xff1b;则H0的判别式为 在H0…

AS 使用Statistic插件统计代码行数

1.下载插件及安装 点击File → Setting→ Plugins&#xff0c;搜索Statistic插件&#xff0c;点击install按钮安装插件。 2.插件使用 安装成功后重启AS&#xff0c;在View→Tool Windows→Statistic&#xff0c;选择后AS底部会显示Statistic按钮&#xff0c; 点击Refresh按钮…

IDEA 统计Statistic插件下载地址

IDEA 统计Statistic插件安装地址 https://plugins.jetbrains.com/plugin/4509-statistic/versions

idea-统计代码行数Statistic

idea统计代码行数可以用到插件&#xff1a;Statistic。 步骤&#xff1a; File→Settings进入Plugins点击Marketplace搜索Statistic 安装蓝框标出的插件 重启idea后就可以看到效果了&#xff08;图是拿的别人的&#xff0c;基本就是这效果&#xff09;如果没有下边的stat…

IDEA代码统计插件Statistic-统计项目代码文件数及代码行数

今天被问到项目的代码量及代码行数&#xff0c;由于项目代码量还挺多&#xff0c;第一时间想到idea有没有插件可以统计&#xff0c;经过搜索&#xff0c;还真有&#xff0c;当然也可以自己写代码实现。 以下介绍Statistic的安装及使用。 1、在IDEA左上角点击File->Setting…