這篇文章給大家分享的是有關(guān)怎么用前端技術(shù)制作音樂播放器的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有郊區(qū)免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。這個播放器的音樂是通過豆瓣FM的API獲取到的,我們可以隨機(jī)的聽到豆瓣FM的任何音樂。
html部分
代碼:
這里就不寫css的代碼了,大家可以直接看源文件或者從開發(fā)者工具中去看。如果有問題可以私聊我。
js部分
代碼一(播放控制):
//播放控制 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(); $('.btn1').removeClass('m-play').addClass('m-pause'); } function pause(){ myAudio.pause(); $('.btn1').removeClass('m-pause').addClass('m-play'); }
代碼二(ajax獲取豆瓣fm音樂):
//獲取隨機(jī)頻道信息 function getChannel(){ $.ajax({ url: 'http://api.jirengu.com/fm/getChannels.php', dataType: 'json', Method: 'get', success: function(response){ var channels = response.channels; var num = Math.floor(Math.random()*channels.length); var channelname = channels[num].name;//獲取隨機(jī)頻道的名稱 var channelId = channels[num].channel_id;//獲取隨機(jī)頻道ID $('.record').text(channelname); $('.record').attr('title',channelname); $('.record').attr('data-id',channelId);//將頻道ID計入data-id中 getmusic(); } }) } // 通過ajax獲取歌曲 function getmusic(){ $.ajax({ url: 'http://api.jirengu.com/fm/getSong.php', dataType: 'json', Method: 'get', data:{ 'channel': $('.record').attr('data-id') }, success: function (ret) { var resource = ret.song[0], url = resource.url, bgPic = resource.picture, sid = resource.sid,//獲取歌詞的參數(shù) ssid = resource.ssid,//獲取歌詞的參數(shù) title = resource.title, author = resource.artist; $('audio').attr('src',url); $('.musicname').text(title); $('.musicname').attr('title',title) $('.musicer').text(author); $('.musicer').attr('title',author) $(".background").css({ 'background':'url('+bgPic+')', 'background-repeat': 'no-repeat', 'background-position': 'center', 'background-size': 'cover', }); play();//播放 } }) };
注意:豆瓣會限制我們的訪問,所以在
標(biāo)簽下一定要添加代碼三(進(jìn)度條控制):
setInterval(present,500) //每0.5秒計算進(jìn)度條長度 $(".basebar").mousedown(function(ev){ //拖拽進(jìn)度條控制進(jìn)度 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; $('.progressbar').width(length+'%');//設(shè)置進(jìn)度條長度 //自動下一曲 if(myAudio.currentTime == myAudio.duration){ getmusic() } }
html5中audio標(biāo)簽本身提供進(jìn)度條功能,以及音量控制功能的,這里我為了界面的好看自己設(shè)置了進(jìn)度條,音量控制還沒有加,大家可以自行添加。
感謝各位的閱讀!關(guān)于“怎么用前端技術(shù)制作音樂播放器”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!