2013-04-09 24 views
0

我似乎無法讓Firefox v20.0在音頻播放時第一次觸發「播放」或「播放」事件播放器在頁面加載時播放音頻文件。Firefox第一次/在頁面加載時不會觸發「播放」或「播放」事件

如果我點擊暫停,然後點擊播放,則「播放」和「播放」事件都會觸發,但不會在初始頁面加載時觸發。

我試着綁定到「play」/「playing」事件使用香草JS作爲貝婁,甚至嘗試使用jQuery的bind()方法,但無濟於事。

似乎在Chrome v26.0.1410.64和IE 10中工作正常。這是Firefox中的錯誤嗎?

// HTML 
// --------------------------------------------------- 
<audio controls="" preload="auto" autobuffer autoplay> 
    <source src="bc.ogg" type='audio/ogg'> 
</audio> 


// JS 
// -------------------------------------------- 
// Assume player is <audio> 

player.addEventListener('playing', function() { 
    console.log('PLAY'); 
}); 

我的最終目標是在音頻播放暫停鍵,以取代自定義的播放按鈕。

+1

音頻元素可能在偵聽器綁定之前開始播放。 – 2013-04-09 21:04:30

+0

就是這樣!所有JS都在正式標籤之前進行處理。 我從來沒有想過檢查這個Chrome/IE似乎工作正常。 您對Chrome/IE如何管理綁定事件有任何想法嗎? **無論如何,請張貼一個答案,我可以標記爲正確/回答。再次感謝你。 – Brownbay 2013-04-09 21:21:56

回答

2

音頻元素可能在偵聽器被綁定之前開始播放。由於DOM的構建和處理方式的內部差異,這可能發生在某些瀏覽器中,而不會發生在其他瀏覽器中。最好的解決方案是在頁面完全加載後綁定監聽器,然後播放音頻元素,而不是依賴瀏覽器在需要時啓動它。

+0

視頻也會發生同樣的情況。沒有意外,但值得注意的是,如果您正在使用自動播放功能。我選擇從視頻標籤中刪除自動播放,並在加載頁面後在視頻元素上調用.play()。 – captainill 2014-06-20 03:23:49

相關問題