2
我正在一個音樂比賽站點上,在同一頁面上有很多jPlayer實例(90)。球員的工作,但不幸的是我必須在加載和播放歌曲之前等待5至30秒。jPlayer - 爲倍數實例簡化函數
這是jQuery代碼爲每個玩家:
$("#jquery_jplayer_2").jPlayer({
ready: function() {
$(this).jPlayer("setMedia", {
m4a: "url/contest/sounds/radioacoustik-rita.m4a",
ogg: "url/contest/sounds/radioacoustik-rita.ogg"
});
},
play: function() { // To avoid both jPlayers playing together.
$(this).jPlayer("pauseOthers");
},
swfPath: "url/contest/js/Jplayer.swf",
supplied: "m4a, ogg",
solution: "html, flash",
preload: 'metadata',
cssSelectorAncestor: "#jp_container_2",
wmode: "window"
});
有我的方式來簡化這個代碼,並允許我加載的所有歌曲更快?
EDIT
確定,所以我嘗試通過一些參數通入變量簡化的代碼:
$(document).ready(function(){
$(".lecteur").each(function(i){
var lecteurNum = $(this).addClass("" + (i+1));
}); //loop through audio and assign a unique class for each
var wrapPlayer = $(".wrap-player");
var classLecteur = wrapPlayer.parent().attr('class').split(' ')[1];
var newPlayerId = "jquery_jplayer_" + classLecteur; // create id jquery_player
var jpContainerId = "#jp_container_" + classLecteur; // create id for jp-container
var songPath = wrapPlayer.attr("rel"); // get url of current sound
$("#" + newPlayerId).jPlayer({
ready: function() {
$(this).jPlayer("setMedia", {
m4a: "http://www.url.com/" + songPath + ".m4a",
oga: "http://www.url.com/" + songPath + ".ogg",
});
},
play: function() { // To avoid both jPlayers playing together.
$(this).jPlayer("pauseOthers");
},
swfPath: "http://www.url.com/contest/js/Jplayer.swf",
solution: "html, flash",
supplied: "m4a, oga",
cssSelectorAncestor: "",
wmode: "window"
});
});
它似乎工作,但所有的實例一起玩相同的軌道(第一).. 任何解決方案?
我是否理解正確的話,一個5-30s延遲一個連接問題,你想在當前播放的時候預載下一個音軌? – Dmitriy 2012-07-24 10:06:45
是的。基本上,我在同一頁面上有90個jplayer實例;對於第一種情況它可以正常工作,但是如果我想爲exple播放播放器42,則在加載前需要太多時間。順便說一下,代碼非常大,所以我問我是否有可能只有一個函數的所有實例。 (ty和對不起我的英文!) – user1092395 2012-07-24 22:28:07
是否有理由不使用[播放列表](http://jplayer.org/latest/demo-02-jPlayerPlaylist/)? – Dmitriy 2012-08-06 16:46:51