2011-12-19 44 views
1

我想用在網站上這個偉大的小音頻播放器:http://www.brianhadaway.com/html5-audio-player-with-flash-fallback/帶Flash後備的HTML5音頻播放器 - Flash版本發生錯誤時發生錯誤?

它工作正常,我在HTML5:http://carolineelisa.com/audiotest/

但是,當我強迫的Flash播放器使用(var isFlash = true;http://carolineelisa.com/audiotest2/js/jquery.audiocontrol.js),然後第一次加載時出現文件未找到錯誤:http://carolineelisa.com/audiotest2/

該按鈕之後會工作,因此以下操作可能不起作用,因爲Flash播放器尚未準備好?

$(document).ready(function(){ 
$(this).audiocontrol(); 
$(‘.audioButton’).click(); 
}); 

等待「點擊」按鈕之前的Flash播放器(如果確實是這樣的問題),將是非常美妙的任何提示。謝謝!

回答

0

請注意jquery.audiocontrol.js中的這兩行。

91. addListeners(window); 
92. audio.playFlash(currentTrack + options.defaultMediaExtension); 

addListeners被添加功能三個事件處理程序這意味着對HTML5的音頻,但在這裏窗口被傳遞到該函數。結果事件監聽器被添加到窗口中。然後audio.playFlash會導致錯誤,因爲玩家沒有像您提到的那樣準備好。但是這個錯誤調用了onError函數,它顯示了爲html5audio元素編寫的錯誤消息。

編輯: 我探索的代碼進一步和發現,那是因爲在索引頁面下面的代碼發生,第12行

$(document).ready(function(){ 
    $(this).audiocontrol(); 
    $('.audioButton').click(); 
}); 

在立即播放該音頻點擊事件的結果觸發,這將只適用於html5音頻。嵌入swf需要幾秒鐘,因爲swfobject.js是動態加載的。因此,此代碼應該像

$(document).ready(function(){ 
    $(this).audiocontrol({ readyCallback:function(){ $('.audioButton').click(); } }); 
}); 

和jquery.audiocontrol.js,管線125增加(對HTML5音頻)後

if(options.readyCallback){ 
    options.readyCallback.call(); 
} 

和在管線136中,將它作爲的embedSWF的回調函數。的embedSWF的最後一個參數是當SWF準備將被調用的回調函數,

swfobject.embedSWF(options.flashAudioPlayerPath, options.playerContainer, 
       "0", "0", "9.0.0", "swf/expressInstall.swf", false, false, 
       {id:options.flashObjectID}, options.readyCallback); 

編輯: 不知道爲什麼外部接口功能甚至準備回調後不可用。我懷疑它是因爲0寬度和0高度。無論如何,給出如下給出的函數loadFlash(第141行)解決了這個問題。它的工作現在。

function loadFlash() { 
    swfobject.embedSWF(options.flashAudioPlayerPath, options.playerContainer, 
      "1", "1", "9.0.0", "swf/expressInstall.swf", false, false, 
      {id:options.flashObjectID}, 
      function(){ 
     if(options.readyCallback){ 
      setTimeout(options.readyCallback, 150); 
     } 
}); 

} 
+0

感謝二極管,但是當我註釋掉這兩條線按鈕不會在所有的工作......其實都需要切換播放按鈕 – 2011-12-19 23:28:21

+0

的那些事件。我用正確的解決方案修改了我的答案。 – Diode 2011-12-20 02:25:59

+0

Yikes,我錯過了什麼?:http://carolineelisa.com/audiotest3/ – 2011-12-20 04:12:28