2011-12-23 507 views
2

我想使用jPlayer製作在線廣播,除了一個問題之外,一切都可以。問題在於。如您所知,jPlayer會根據需要使用HTML5和Flash,因此當我在Chrome中測試它時,它使用了HTML音頻標籤,並且一切正常,但是當我在其他瀏覽器(Opera,IE,FF)中測試它時,它使用Flash,這裏是問題是,它初始化玩家兩次,誰能告訴我爲什麼?感謝您的提前。jPlayer初始化問題

UPDATE
這只是我們可以從jplayer.org下載主包。 demo.html中有一部分正在初始化。當我們試圖在這部分中寫入alert('something')時,我們會看到這個函數被調用了2次。

$(document).ready(function(){ 

    $("#jquery_jplayer_1").jPlayer({ 
     ready: function() { 
      var data = $.ajax({ 
       url: "getsong.php", 
       async: false 
      }).responseText; 
      alert(data) // <-- alert will twice 
      var string = data.split('|'); 
      $(this).jPlayer("setMedia", { 
       mp3: string[0] 
      }).jPlayer("play"); 

      $('#artist').html(string[1]); 
      $('#songname').html(string[2]); 
     }, 
     swfPath: "js", 
     supplied: "mp3" 
    }); 
}); 

我認爲這是因爲閃存。

+0

嗨,它不應該初始化兩次 - 我從來沒有見過也沒有聽說過這..我甚至不完全明白你的意思..你可以發佈你的代碼,或鏈接到一個開發頁面,所以我們可以診斷? – Lloyd 2011-12-24 00:12:11

回答

0

您是否嘗試過分離您用來獲取和使用數據的方法?在我看來,在需要播放jPlayer文件之前需要數據。試試這個:

$(document).ready(function(){ 
    var data = $.ajax({ 
     url: "getsong.php", 
     async: false 
    }).responseText; 

    $("#jquery_jplayer_1").jPlayer({ 
     ready: function() { 
      alert(data) // <-- alert will twice 
      var string = data.split('|'); 
      $(this).jPlayer("setMedia", { 
       mp3: string[0] 
      }).jPlayer("play"); 

      $('#artist').html(string[1]); 
      $('#songname').html(string[2]); 
     }, 
     swfPath: "js", 
     supplied: "mp3" 
    }); 
});