Home  >  Article  >  Web Front-end  >  Use the simplest front-end technology to create a simple music player

Use the simplest front-end technology to create a simple music player

php中世界最好的语言
php中世界最好的语言Original
2018-03-08 14:27:583886browse

This time I will bring you the simplest front-end technology to make a simple music player. What are the precautions. The following is a practical case. Let’s take a look.

The music of this player is obtained through Douban FM’s API. We can randomly listen to any music on Douban FM.

html part
Code:

<div class="wrapper">
<div class="background"></div>
<div class="content">
<audio src=""></audio>
<div class="music-massage">
<p class="musicname"></p>
<p class="musicer"></p>
</div>
<div class="music-icon">
<a class="m-icon m-fenxiang colored" href="http://service.weibo.com/share/share.php?title=#_loginLayer_1466697157538" target="new"></a>
<span class="m-icon m-star colored"></span>
<span class="m-icon m-heart colored"></span>
</div>
</div>
<span class="basebar">
<span class="progressbar"></span>
</span>
<div class="controls">
<div class="play-control">
<span class="m-icon m-play btn1" title="播放/暂停"></span>
<span class="m-icon m-change btn2" title="换频道"></span>
<span class="m-icon m-next btn3" title="换曲"></span>
</div>
<div class="music-control">
<span class="m-icon m-xunhuan colored"></span>
<span class="m-icon m-radom colored"></span>
</div>
</div>
</div>

I won’t write the css code here. You can look at the source file directly or look at it from the developer tools. If you have any questions, you can message me privately.

js part
Code one (playback control):

//播放控制
var myAudio = $("audio")[0];
// 播放/暂停控制
$(".btn1").click(function(){
if (myAudio.paused) {
play()
} else {
pause()
}
});
// 频道切换
$(".btn2").click(function(){
getChannel();
});
// 播放下一曲音乐
$(".btn3").click(function(){
getmusic();
});
function play(){
myAudio.play();
$(&#39;.btn1&#39;).removeClass(&#39;m-play&#39;).addClass(&#39;m-pause&#39;);
}
function pause(){
myAudio.pause();
$(&#39;.btn1&#39;).removeClass(&#39;m-pause&#39;).addClass(&#39;m-play&#39;);
}

Code two (ajax to get Douban FM music):

//获取随机频道信息
function getChannel(){
$.ajax({
url: &#39;http://api.jirengu.com/fm/getChannels.php&#39;,
dataType: &#39;json&#39;,
Method: &#39;get&#39;,
success: function(response){
var channels = response.channels;
var num = Math.floor(Math.random()*channels.length);
var channelname = channels[num].name;//获取随机频道的名称
var channelId = channels[num].channel_id;//获取随机频道ID
$(&#39;.record&#39;).text(channelname);
$(&#39;.record&#39;).attr(&#39;title&#39;,channelname);
$(&#39;.record&#39;).attr(&#39;data-id&#39;,channelId);//将频道ID计入data-id中
getmusic();
}
})
}
// 通过ajax获取歌曲
function getmusic(){
$.ajax({
url: &#39;http://api.jirengu.com/fm/getSong.php&#39;,
dataType: &#39;json&#39;,
Method: &#39;get&#39;,
data:{
&#39;channel&#39;: $(&#39;.record&#39;).attr(&#39;data-id&#39;)
},
success: function (ret) {
var resource = ret.song[0],
url = resource.url,
bgPic = resource.picture,
sid = resource.sid,//获取歌词的参数
ssid = resource.ssid,//获取歌词的参数
title = resource.title,
author = resource.artist;
$(&#39;audio&#39;).attr(&#39;src&#39;,url);
$(&#39;.musicname&#39;).text(title);
$(&#39;.musicname&#39;).attr(&#39;title&#39;,title)
$(&#39;.musicer&#39;).text(author);
$(&#39;.musicer&#39;).attr(&#39;title&#39;,author)
$(".background").css({
&#39;background&#39;:&#39;url(&#39;+bgPic+&#39;)&#39;,
&#39;background-repeat&#39;: &#39;no-repeat&#39;,
&#39;background-position&#39;: &#39;center&#39;,
&#39;background-size&#39;: &#39;cover&#39;,
});
play();//播放
}
})
};

Note: Douban will restrict our access, so be sure to add f92061d5604e29b283bed79e420fcc50

Code 3 (Progress Bar Control) under the 93f0f5c25f18dab9d176bd4f6de5d30e tag ):

setInterval(present,500)    //每0.5秒计算进度条长度
$(".basebar").mousedown(function(ev){  //拖拽进度条控制进度
var posX = ev.clientX;
var targetLeft = $(this).offset().left;
var percentage = (posX - targetLeft)/400100;
myAudio.currentTime = myAudio.duration * percentage/100;
});
function present(){
var length = myAudio.currentTime/myAudio.duration100;
$(&#39;.progressbar&#39;).width(length+&#39;%&#39;);//设置进度条长度
//自动下一曲
if(myAudio.currentTime == myAudio.duration){
getmusic()
}
}

The audio tag itself in html5 provides a progress bar function and a volume control function. Here I set up the progress bar myself for the sake of a beautiful interface. The volume control has not been added yet. You can add it yourself. .

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!

Related reading:

How to turn the browser into an editor

##How to use python to determine image similarity

Javascript script used to download images

The above is the detailed content of Use the simplest front-end technology to create a simple music player. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn