從我剛開始接觸前端的時候就想寫一個能播放音樂的小程序,剛開始寫的時候雖然能夠放,可是確實很慢,很卡,有不少能夠優化的地方。
最近在前一個版本的基礎上重寫了一個音樂播放器的插件,速度還能夠吧前端
由於追求簡約 因此只有播放暫停和下一曲的按鈕,以及顯示播放進度 (沒怎麼作兼容 ie10 以上)git
播放時候的效果github
toggle以後的效果 會顯示當前播放進度ajax
加載時候的效果canvas
、小程序
toggle以後的效果 加載時候的效果api
演示地址 :http://daiwei.org/music/ 數組
github地址: https://github.com/IFmiss/music , 記得給個 star 哦!!!優化
參數:url
width:music寬度
height:music高度
hasBlur: 是否顯示模糊效果
blur: 模糊效果的值
left:music left 的值
right:music right 的值
bottom: music bottom 的值
direction:左下仍是右下角 bottomleft bottomright(left、right、bottom設置)
btnBackground:播放暫停按鈕的背景色,不包括圖標
iconColor:播放暫停按鈕的圖標顏色
hasSelect:是否可選擇類型 (音樂的類型,在js中以靜態數組的形式顯示,能夠的話從後臺獲取)
musicType:音樂類型 數組類型
hasAjax:是不是ajax請求數據,爲false 則使用默認的source
source:音樂的數據信息 包括 name:名稱,singer:歌手,url:音樂地址,img_url:封面地址
durationBg:canvas進度條的背景色
progressBg:canvas進度條當前狀態的背景色
方法
beforeMusicPlay:function(){} 在音樂播放以前觸發 (首次加載的時候)
afterMusicLoading:function(){} 在音樂加載成功 可播放以前
musicChanged:function(ret){} 音樂切換以後,播放結束 或者點擊下一首觸發 返回值:index:音樂索引,data:全部的music數據,url:音樂地址
getMusicInfo:function(ret){} 獲取全部音樂的信息
$api.music({ hasAjax:false, musicChanged:function(ret){ var data = ret.data; var index = ret.index; var imageUrl = data[index].img_url; var music_bg = document.getElementById('music-bg'); music_bg.style.background = 'url('+imageUrl+')no-repeat'; music_bg.style.backgroundSize = 'cover'; music_bg.style.backgroundPosition = 'center 30%'; } });
$api 能夠在music.js倒數第二行更改你想要的名稱