HTML 5 audioタグを使った自作音楽プレーヤー
3045 ワード
この文章の著作権は饥人谷と本人の所有に帰して、転载は本人の同意を得なければならなくて、プロジェクトはオープンソースのプロジェクトで、商业の応用に使うことができなくて、ただ学习に供します.
プレビューアドレス:https://boloog.github.io/music/GitHubアドレス:https://github.com/boloog/music/
関連スキル . 実装された機能再生休止(クリックで再生状態を切り替える) 次の曲(次の曲に切り替え) ランダム再生(現在の曲が再生されたら次の曲が自動的に再生される) シングルサイクル(ランダム再生アイコンクリックでシングルサイクルに切り替わる) 音量調整(マウス移動スライド設定音量サイズ) 歌曲进度条(可クリック切替进度直接跳,可クリック小圆点拖拉切替进度) リアルタイム歌詞(クリック語、歌詞インタフェースを切り替え、リアルタイム進捗に応じて自動的に歌詞をスクロール) お気に入り(クリックでactive効果が追加されました) 共有(新浪微博に直接共有できる) audioラベル使用 を返す.
コードの再生と一時停止
音楽プログレスバーコード
歌詞追加コード
コードはまだたくさんあっていちいち追加しないで、まあまあだと思ったら好きになって(私のGitHubでスターをあげることもできます)、あなたの好きとスターは私の創作を続ける動力で、とても感謝します!!
何か質問や質問がありましたら、ご指摘ください.
プレビューアドレス:https://boloog.github.io/music/GitHubアドレス:https://github.com/boloog/music/
関連スキル
HTML5+CSS3
(ページレイアウトとダイナミックエフェクトを実現)Iconfont
(ベクトルアイコンライブラリを使用してプレーヤー関連アイコンを追加)LESS
(動的CSS作成)jQuery
(jsスクリプトのクイック作成)gulp+webpack
(自動構築ツール、LESS、CSS、JSなどのコンパイルと圧縮コードを実現)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 = '';
lyric.forEach(function(element,index) {
var ele = element[1] === undefined ? '^_^ ^_^' : element[1];
html += ' ' + ele + '
';
lyricLength++;
});
html += '';
this.lyricBox.append(html);
this.onTimeUpdate(lyricLength);
}
コードはまだたくさんあっていちいち追加しないで、まあまあだと思ったら好きになって(私のGitHubでスターをあげることもできます)、あなたの好きとスターは私の創作を続ける動力で、とても感謝します!!
何か質問や質問がありましたら、ご指摘ください.