使用HTML5 audio標籤自製音樂播放器

聲明:此文章版權歸飢人谷和本人所有,轉載須得到本人同意,項目為開源項目,不能用於商業應用,僅供學習。

預覽地址: boloog.github.io/music/

GitHub地址: github.com/boloog/music

相關技能

  • HTML5+CSS3(實現頁面布局和動態效果)

  • Iconfont(使用矢量圖標庫添加播放器相關圖標)

  • LESS (動態CSS編寫)

  • jQuery(快速編寫js腳本)

  • gulp+webpack(自動化構建工具,實現LESS,CSS,JS等編譯和壓縮代碼)

實現的功能

  • 播放暫停(點擊切換播放狀態)

  • 下一曲(切換下一首)

  • 隨機播放(當前歌曲播放完自動播放下一曲)

  • 單曲循環(點擊隨機播放圖標可切換成單曲循環)

  • 音量調節(滑鼠移入滑動設置音量大小)

  • 歌曲進度條(可點擊切換進度直接跳,也可以點擊小圓點拖拽切換進度)

  • 實時歌詞(點擊詞,切換歌詞界面,根據實時進度自動滾動歌詞)

  • 喜歡(點擊添加了一個active效果)

  • 分享(可以直接分享到新浪微博)

audio 標籤使用

  • autoplay 自動播放

  • loop 循環播放

  • volume 音量設置

  • currentTime 當前播放位置

  • duration 音頻的長度

  • pause 暫停

  • play 播放

  • ended 返迴音頻是否已結束

播放和暫停代碼

_Music.prototype.playMusic = function(){ var _this = this; this.play.on(click, function(){ if (_this.audio.paused) { _this.audio.play(); $(this).html(); } else { _this.audio.pause(); $(this).html() } });}

音樂進度條代碼

_Music.prototype.volumeDrag = function(){ var _this = this; this.btn.on(mousedown, function(){ _this.clicking = true; _this.audio.pause(); }) this.btn.on(mouseup, function(){ _this.clicking = false; _this.audio.play(); }) this.progress.on(mousemove click, function(e){ if(_this.clicking || e.type === click){ var len = $(this).width(), left = e.pageX - $(this).offset().left, volume = left / len; if(volume <= 1 || volume >= 0){ _this.audio.currentTime = volume * _this.audio.duration; _this.progressLine.css(width, volume *100 +%); } } });}

歌詞添加代碼

_Music.prototype.readyLyric = function(lyric){ this.lyricBox.empty(); var lyricLength = 0; var html = <div class="lyric-ani" data-height="20">; lyric.forEach(function(element,index) { var ele = element[1] === undefined ? ^_^歌詞錯誤^_^ : element[1]; html += <p class="lyric-line" data-id="+index+" data-time=" + element[0] + "> + ele + </p>; lyricLength++; }); html += </div>; this.lyricBox.append(html); this.onTimeUpdate(lyricLength);}

代碼還有很多就不一一添加了,覺得還行的話可以點下贊(也可以在我的GitHub給個Star),你的點贊和Star是我繼續創作的動力,非常感謝!!!

有什麼疑問或問題,歡迎大家指出。


推薦閱讀:

萌新的凱音n5ii播放器簡評
被重新定義的智能國磚——凱音N5ii評測
聊一聊最不像韓磚的播放器:KANN
foobar2000 1.4 發布beta1版本

TAG:HTML5 | 音樂播放器 |