2013-11-27 148 views
6

我得到這個錯誤在IE11中,我暫時只改變了一個數字的所有變量,但我無法擺脫這個錯誤。audio.currentTime invalidStateError IE11,JS,HTML5

audio.currentTime = 10; 

錯誤的樣子:

SCRIPT5022: InvalidStateError 

這個腳本作品在Chrome和Firefox良好。 根據this page它應該工作。

+0

由於IE並沒有真正地支持任何東西,我想出的最快解決方案是在我的音頻功能上加入try/catch。如果IE用戶仍然使用該瀏覽器,則不應允許IE用戶發出聲音... – Jester

回答

14

我知道這個問題是舊的,但我只是遇到了同樣的問題,想發佈我學到的東西。

您的音頻播放器是否成功加載了音頻?如果src =「#」或者如果您給播放器提供了音頻文件的錯誤路徑,那麼您提供的代碼行會給出您提到的錯誤。

我建議嘗試以下代碼,其中audioPlayer是音頻元素進行簡單的檢查ID的音頻文件確實已經加載:

if (!isNaN(aud.duration)) { 
     aud.currentTime = vid.currentTime; 
    } 

不過,當然,如果你期待音頻已加載,修復音頻文件的路徑

9

在IE11中,在加載視頻的元數據之前訪問視頻的currentTime屬性時發生此錯誤。下面的代碼解決了我的錯誤。

vidEl.addEventListener('loadedmetadata', function() { 
    vidEl.currentTime = someSeekTime; 
}, false); 

希望這可以幫助別人。

+0

對於打字稿/反應這工作得很好。 this.audioEl.onloadedData = function():void {th​​is.audioEl.currentTime = newTime; } .bind(本); –

+0

這節省了我幾個小時! – Orry