2013-11-20 59 views
2

如果我有下面的代碼,然後回調函數被調用:onloadedmetadata不適用於音頻?

var audio = new Audio(); 
audio.addEventListener('loadedmetadata', function() { 
    console.log("Loaded metadata for %s, duration=%s", 
       soundUrl, audio.duration); 
    audio = null; 
}); 
audio.src = soundUrl; 

但是,如果我這樣做,回調不會被調用:

var audio = new Audio(); 
audio.onloadedmetadata = function() { 
    console.log("Loaded metadata for %s, duration=%s", 
       soundUrl, audio.duration); 
    audio = null; 
}; 
audio.src = soundUrl; 

有沒有什麼好的這是爲什麼?我以爲FOO.addEventListener(BAR, BAZ)相當於​​。

+0

我同意第二個例子應該可以工作,但MDN示例也使用'addEventListener':https://developer.mozilla.org/ EN /文檔/網絡/指南/活動/ Media_events –

回答

0

顯然不是在這種情況下,雖然我相信這兩種方法應該具有相同的效果。在您的腳本有機會運行並觸發事件之前,可能會更快加載音頻。

我瀏覽過一些,但只能找到添加addEventListener的例子。這篇關於dev.opera.com的文章雖然是關於視頻的,但它是關於視頻的。雖然它關於視頻http://dev.opera.com/articles/view/consistent-event-firing-with-html5-video/

相關問題