首先,我们来编写html界面index.html,代码如下:

<!DOCTYPE html>

<html>

mp3播放器html代码应用JS开辟简略的音乐播放器 Webpack

<head>

<meta charset=\"大众utf-8\"大众 />

<title></title>

<link rel=\"大众stylesheet\"大众 type=\公众text/css\公众 href=\"大众css/style.css\"大众/>

<script src=\公众js/jquery-2.1.0.js\公众 type=\"大众text/javascript\"大众 charset=\公众utf-8\公众></script>

<script src=\"大众js/common.js\"大众 type=\"大众text/javascript\公众 charset=\公众utf-8\"大众></script>

</head>

<body>

<!--播放器-->

<audio id=\"大众song\公众 autoplay=\公众autoplay\"大众></audio>

<!--整体构造-->

<div id=\"大众boxDiv\公众>

<!--歌词展示区域-->

<div id=\"大众contentDiv\"大众>

<!--歌词显示-->

<div id=\"大众lrcDiv\"大众></div>

<!--上部阴影-->

<span id=\"大众bgTopSpan\公众></span>

<!--下部阴影-->

<span id=\"大众bgBottomSpan\"大众></span>

</div>

<!--掌握区域-->

<div id=\"大众controlDiv\"大众>

<!--进度条-->

<div id=\"大众progressDiv\"大众></div>

<!--进度条圆点-->

<img id=\公众pointerImg\"大众 src=\"大众img/audio/progress_pointer@2x.png\公众/>

<!--播放韶光-->

<span id=\"大众playTimeSpan\"大众>00:00</span>

<!--歌曲标题-->

<span id=\"大众titleSpan\"大众></span>

<!--总韶光-->

<span id=\"大众totalTimeSpan\公众>00:00</span>

<!--按钮区域-->

<div id=\"大众buttonDiv\公众>

<!--上一首按钮-->

<img id=\公众prevImg\公众 src=\公众img/audio/play_above_song@2x.png\"大众/>

<!--播放停息按钮-->

<img id=\公众playOrPauseImg\公众 src=\"大众img/audio/play@2x.png\"大众/>

<!--下一首按钮-->

<img id=\"大众nextImg\"大众 src=\"大众img/audio/play_next_song@2x.png\"大众/>

</div>

</div>

</div>

</body>

</html>

接下来,编写style.css,代码如下:

body{

margin: 0px;

background-color: #ccc;

}

#boxDiv{

width: 375px;

height: 568px;

margin: 10px auto;

position: relative;

}

#contentDiv{

width: 375px;

height: 460px;

background-image: url(../img/audio/play_bg@2x.png);

overflow: hidden;

}

#lrcDiv{

margin-top: 260px;

}

#lrcDiv span{

display: block;

line-height: 40px;

text-align: center;

color: white;

font-size: 20px;

}

#bgTopSpan{

position: absolute;

display: block;

width: 375px;

height: 30px;

top: 0px;

background-image: url(../img/audio/play_top_shadow@2x.png);

}

#bgBottomSpan{

top: 430px;

position: absolute;

background-image: url(../img/audio/play_bottom_shadow@2x.png);

display: block;

width: 375px;

height: 30px;

}

#controlDiv{

width: 375px;

height: 180px;

position: relative;

background-color: white;

}

#progressDiv{

background-color: red;

height: 1.5px;

width: 0px;

}

#pointerImg{

width: 18px;

height: 18px;

position: absolute;

top: -8.5px;

left: -3px;

}

#playTimeSpan{

display: block;

position: absolute;

font-size: 14px;

width: 35px;

top: 5px;

left: 5px;

}

#totalTimeSpan{

display: block;

position: absolute;

font-size: 14px;

width: 35px;

top: 5px;

left: 335px;

}

#titleSpan{

display: block;

position: absolute;

height: 30px;

width: 295px;

font-size: 20px;

text-align: center;

left: 40px;

top: 5px;

}

#buttonDiv{

margin-top: 40px;

position: relative;

}

#prevImg{

width: 40px;

height: 40px;

position: absolute;

top: 20px;

left: 60px;

}

#playOrPauseImg{

width: 70px;

height: 70px;

position: absolute;

top: 5px;

left: 152px;

}

#nextImg{

width: 40px;

height: 40px;

position: absolute;

top: 20px;

left: 275px;

}

末了,编写common.js,代码如下:

$(function(){

// 歌曲列表

var playList = [\"大众红日\公众, \"大众狼的诱惑\"大众, \公众漂洋过海来看你\公众];

// 当前播放的歌曲序号

var currentIndex = 0;

// 播放器的原生工具

var audio = $(\"大众#song\"大众)[0];

// 播放韶光数组

var timeArr = [];

// 歌词数组

var lrcArr = [];

// 调用播放前设置

setup();

// 播放歌曲

playMusic();

// 播放歌曲

function playMusic(){

// 播放歌曲

audio.play();

// 设置为停息的图片

$(\"大众#playOrPauseImg\公众).attr(\公众src\"大众, \"大众img/audio/pause@2x.png\"大众);

}

// 歌曲播放前设置

function setup(){

// 设置播放哪一首歌曲

// img/audio/红日.mp3

audio.src = \公众img/audio/\"大众 + playList[currentIndex] + \"大众.mp3\公众;

// 设置歌曲的名字

$(\"大众#titleSpan\"大众).text(playList[currentIndex]);

// 设置歌词

setLrc();

}

// 设置歌词

function setLrc(){

// 清空上一首的歌词

$(\"大众#lrcDiv span\"大众).remove();

// 清空数组

timeArr = [];

lrcArr = [];

// 加载歌词文件

$.get(\"大众img/audio/\公众 + playList[currentIndex] + \"大众.lrc\公众, {}, function(data){

if(data){

// 按行切割字符串

var arr = data.split(\"大众\n\公众);

// 分割歌词

for (var i = 0; i < arr.length; i++) {

// 分割韶光和歌词

var tempArr = arr[i].split(\"大众]\公众);

if (tempArr.length > 1){

// 添加韶光和歌词到数组

timeArr.push(tempArr[0]);

lrcArr.push(tempArr[1]);

}

}

// 显示歌词

for (var i = 0; i < lrcArr.length; i++) {

$(\公众#lrcDiv\公众).append(\"大众<span>\"大众+lrcArr[i]+\公众</span>\公众);

}

}

});

}

// 播放停息事宜

$(\公众#playOrPauseImg\公众).click(function(){

// 如果播放器是停息状态

if(audio.paused){

// 连续播放

playMusic();

}else{

// 停息

audio.pause();

// 变成播放的图片

$(\"大众#playOrPauseImg\公众).attr(\公众src\"大众, \"大众img/audio/play@2x.png\"大众);

}

});

// 上一首

$(\"大众#prevImg\"大众).click(function(){

// 如果是第一首,那么跳到末了一首

if(currentIndex == 0){

currentIndex = playList.length - 1;

}else{

currentIndex--;

}

// 播放前设置

setup();

// 播放

playMusic();

});

// 下一首

$(\"大众#nextImg\公众).click(function(){

// 如果是末了一首,就跳到第一首

if(currentIndex == playList.length - 1){

currentIndex = 0;

}else{

currentIndex++;

}

// 播放前设置

setup();

// 播放

playMusic();

});

// 监听播放器播放韶光改变事宜

audio.addEventListener(\"大众timeupdate\"大众, function(){

// 当前播放韶光

var currentTime = audio.currentTime;

// 总韶光

var totalTime = audio.duration;

// 当是数字的时候

if(!isNaN(totalTime)){

// 得到播放韶光与总时长的比值

var rate = currentTime / totalTime;

// 设置韶光显示

// 播放韶光

$(\公众#playTimeSpan\"大众).text(getFormatterDate(currentTime));

// 总时长

$(\公众#totalTimeSpan\公众).text(getFormatterDate(totalTime));

// 设置进度条

$(\"大众#progressDiv\"大众).css(\"大众width\"大众, rate 375 + \"大众px\公众);

// 设置进度圆点

$(\"大众#pointerImg\公众).css(\公众left\"大众, (375 - 15) rate - 3 + \公众px\"大众);

// 设置歌词的颜色和内容的滚动

for (var i = 0; i < timeArr.length - 1; i++) {

if(!isNaN(getTime(timeArr[i]))){

// 当前播放韶光大于即是i行的韶光,并且小于下一行的韶光

if (currentTime >= getTime(timeArr[i]) && currentTime < getTime(timeArr[i+1])){

// 当前行歌词变赤色

$(\"大众#lrcDiv span:eq(\"大众+i+\"大众)\"大众).css(\"大众color\"大众, \"大众#FF0000\"大众);

// 其他行歌词变白色

$(\"大众#lrcDiv span:not(:eq(\"大众+i+\"大众))\"大众).css(\"大众color\"大众, \公众#FFFFFF\"大众);

// 当前行歌词滚动

$(\公众#lrcDiv\"大众).stop(false, true).animate({\"大众margin-top\"大众: 260 - 40 i + \"大众px\"大众}, 1000);

}

}

}

}

});

function getTime(timeStr){

// 去掉左边的[

var arr = timeStr.split(\公众[\"大众);

if(arr.length > 1){

// 得到右边的韶光

var str = arr[1];

// 分割分、秒

var tempArr = str.split(\"大众:\公众);

// 分

var m = parseInt(tempArr[0]);

// 秒

var s = parseFloat(tempArr[1]);

return m 60 + s;

}

return 0;

}

// 格式化韶光(00:00)

function getFormatterDate(time){

// 分

var m = parseInt(time / 60);

// 秒

var s = parseInt(time % 60);

// 补零

m = m > 9 ? m : \公众0\"大众 + m;

s = s > 9 ? s : \"大众0\"大众 + s;

return m + \公众:\公众 + s;

}

});

图片和歌曲、歌词请自行下载,末了,可以运行试试了。
是不是很有趣呢?想要学习更多的Java技能开拓知识,关注“重庆千锋”获取更多的视频教程,千锋重庆IT培训机构还供应两周免费试听课程,欢迎各位小伙伴申请试听。