微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于jQuery实现歌词滚动版音乐播放器的代码

先给大家看下效果图,感兴趣的朋友可以参考实现代码

核心代码如下所示:

rush:js;"> $.ajax({ url: "/music/music.txt",type: "get",success: function(data) { data = jQuery.parseJSON(data); var length = data.length; var Now=0; for (i = 0; i < length; i++) { $("#musicText li").eq(i).after("
  • " + data[i].text + "
  • ") } var player = { playButton: $(".play"),songText: $(".musicText"),state: 0,//0播放,1暂停 audio: $("#audio").get(0),bind: function() { //绑定按钮 //播放或暂停 console.log($.type(this)) console.log($.type(this)) var obj = this; this.playButton.click(function() { obj.changeState(obj.state ? 0 : 1); }); //设置声音 $("#voice").click(function(ex) { var percent = (ex.clientX - $(this).offset().left) / $(this).width(); obj.setVoice(percent); }); //认声音 0.8 obj.setVoice(1.0); //静音 $("#voiceOP").click(function() { if (obj.muted) { $(this).removeClass("muted"); obj.audio.muted = false; obj.muted = false; } else { $(this).addClass("muted"); obj.audio.muted = true; obj.muted = true; } }); //设置进度 $("#MusicProgress").click(function(ex) { var percent = (ex.clientX - $(this).offset().left) / $(this).width(); obj.setProgress(percent,false); }); //上一首 $("#prev").click(function() { obj.NowIndex--; if (obj.NowIndex < 0) obj.nowIndex = obj.list.length - 1; obj.playSing(obj.nowIndex); }); //下一首 $("#next").click(function() { obj.nowIndex++; if (obj.nowIndex >= obj.list.length) obj.NowIndex = 0; obj.playSing(obj.NowIndex); player.audio.play(); }); //绑定事件 - 播放时间改变 this.audio.ontimeupdate = function() { obj.timeChange(); } //播放结束 this.audio.onended = function() { obj.singEnd(); } },//切换播放状态 changeState: function(_state) { this.state = _state; if (!this.state) { this.playButton.removeClass("pause").addClass("play"); this.pause(); } else { this.playButton.removeClass("play").addClass("pause"); this.play(); } },//播放 play: function() { this.audio.play(); },//暂停 pause: function() { this.audio.pause(); },timeChange: function() { var NowSec = Math.floor(this.audio.currentTime); console.log(NowSec) console.log(data[Now].time) if(NowSec>data[Now].time){ Now = Now + 1; console.log(Now) $("#musicText li").eq(Now).addClass("active").siblings("li").removeClass("active"); $("#musicText").css("top",-(24*Now)+138) } var totalSec = Math.floor(this.audio.duration); //当前进度显示 var secTip = secFormat(NowSec) + "/" + secFormat(totalSec); if (secTip.length == 11) $("#secTip").html(secTip); this.setProgress(NowSec / totalSec,true); },setVoice: function(percent) { $("#voice").children(".bar").css("width",percent * 100 + "%"); $("#voice").children("a").css("left",percent * 100 + "%"); this.audio.volume = percent; },setProgress: function(percent,justCss) { $("#MusicProgress").children(".bar").css("width",percent * 100 + "%"); $("#MusicProgress").children("a").css("left",percent * 100 + "%"); if (!justCss) this.audio.currentTime = this.audio.duration * percent; },singEnd: function() { if (this.style == 0) { this.NowIndex++; if (this.NowIndex >= this.list.length) this.NowIndex = 0; this.playSing(this.NowIndex); } else { var index = Math.floor(Math.random() * (this.list.length + 1)) - 1; index = index < 0 ? 0 : index; index = index >= this.list.length ? (this.list.length - 1) : index; this.playSing(index); this.NowIndex = index; } },}; player.bind(); function secFormat(num) { var m = Math.floor(num / 60); var s = Math.floor(num % 60); return makeFormat(m) + ":" + makeFormat(s); function makeFormat(n) { if (n >= 10) return n; else { return "0" + n; } } } } })

    然后这里的代码是alpha0.0.1版的,一直在升级ing.

    以上所述是小编给大家介绍的基于jQuery实现歌词滚动版音乐播放器的代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的。

    版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

    相关推荐