2011-12-23 262 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" 
    }); 
});