English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
先给大家看下效果图,感兴趣的朋友可以参考实现代码
核心代码如下所示:
$.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("<li>" + data[i].text + "</li>") } 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--; إذا (obj.nowIndex < 0) obj.nowIndex = obj.list.length - 1; obj.playSing(obj.nowIndex); }); //下一首 $("#next").click(function() { obj.nowIndex++; إذا (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; إذا (!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); إذا (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) } طول.الوقت.الكلي = Math.floor(this.الصوت.المدة); // عرض التقدم الحالي هذا.النصوص.الشريط = هذا.النصوص.الشريط.التنسيق(nowSec) + "/" + هذا.النصوص.الشريط.التنسيق(طول.الوقت.الكلي); إذا (طول.النصوص.الشريط == 11) $("#secTip").html(secTip); هذا.ضبط.الوقت.النسبة(nowSec / طول.الوقت.الكلي, true); }, setVoice: function(percent) { $("#voice").children(".bar").css("width", نسبة * 100 + "%"); $("#voice").children("a").css("left", نسبة * 100 + "%"); هذا.الصوت.الصوت = نسبة; }, setProgress: function(percent, justCss) { $("#MusicProgress").children(".bar").css("width", نسبة * 100 + "%"); $("#MusicProgress").children("a").css("left", نسبة * 100 + "%"); إذا (!justCss) هذا.الصوت.الوقت الحالي = هذا.الصوت.المدة * نسبة; }, singEnd: function() { إذا (هذا.النمط == 0) { هذا.الاُن.الايديكس++; إذا (هذا.الاُن.الايديكس >= طول.القائمة) هذا.الاُن.الايديكس = 0; هذا.اللعب.المغني(هذا.الاُن.الايديكس); } else {}} وظيفة 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(); وظيفة secFormat(num) { وظيفة m = Math.floor(num / 60); وظيفة s = Math.floor(num % 60); العودة makeFormat(m) + ":" + makeFormat(s); وظيفة makeFormat(n) { إذا (n >= 10) العودة n; else { العودة "0" + n; } } } } }
ثم هذا الكود هو إصدار alpha0.0.1، وهو في طور التحديث.
ما تم ذكره أعلاه هو رمز لإنشاء مشغل موسيقي لعرض النصوص الموسيقية باستخدام jQuery، آمل أن يكون هذا مفيدًا لكم، إذا كان لديكم أي استفسارات، فلا تترددوا في ترك تعليق، وسأقوم بالرد على تعليقاتكم في أقرب وقت.
بيان: محتوى هذا المقال تم جمعه من الإنترنت، ملكية المحتوى لصاحب الحقوق، تم جمع المحتوى من قبل المستخدمين على الإنترنت بتحميلهم بشكل تلقائي، هذا الموقع لا يمتلك الحقوق، لم يتم تعديل المحتوى بشكل يدوي، ولا يتحمل أي مسؤولية قانونية. إذا وجدت محتوى يشتبه في حقوق النسخ، يرجى إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال # بـ @) للإبلاغ، وقدم الدليل، وسيتم حذف المحتوى المزعوم عن الفساد فورًا.