2013-04-17 21 views
1

我在獲取音頻/ mpeg(mp3)的元數據時遇到問題。在緩存爲空時獲取音頻文件的持續時間屬性的問題

例如,我使用JS獲取音頻文件的持續時間,當緩存爲空時,持續時間值返回「Infinity」(NaN)。

我已經嘗試過事件/屬性預加載和onloadedmetadata,並且總是當緩存爲空時,我無法獲得音頻的持續時間和其他屬性。

注意:問題是隻有當我清理緩存(或當訪問者第一次到達頁面時)。

audioElement = new Audio('http://www.html5rocks.com/en/tutorials/audio/quick/test.mp3'); 
    console.log(audioElement); 
    audioElement.addEventListener("loadedmetadata", function(_event) { 
    var duration = audioElement.duration; 
    console.log(duration); 
    }); 
+0

如果持續時間不是在元數據中,也許你可以添加一些更多的聽衆,並制定出可用時。 – robertc

+0

我目前遇到同樣的問題,你解決了嗎? –

回答

1

也許是因爲你的媒體是流媒體嗎?

參見https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement

持續時間閱讀如果沒有媒體數據僅可加倍
以秒爲介質的長度,或爲零。如果媒體數據可用但長度未知,則此值爲NaN。 如果媒體流式傳輸並且沒有預定義長度,則值爲Inf

0
audioElement = new Audio('http://www.html5rocks.com/en/tutorials/audio/quick/test.mp3'); 
    console.log(audioElement); 
    audioElement.addEventListener("loadedmetadata", function(_event) { 
    var duration = audioElement.duration; 
    console.log(duration); 
}); 
相關問題