【问题标题】:audio.currentTime invalidStateError IE11, JS, HTML5audio.currentTime invalidStateError IE11、JS、HTML5
【发布时间】:2018-09-22 23:10:28
【问题描述】:

我在 IE11 中遇到这个错误,我临时更改了一个数字上的所有变量,但我无法摆脱这个错误。

audio.currentTime = 10;

错误看起来像:

SCRIPT5022: InvalidStateError

此脚本在 Chrome 和 Firefox 中运行良好。 根据this page 应该可以工作。

【问题讨论】:

  • 由于 IE 并没有真正正确地支持任何东西,我想出的最快的解决方案是在我的音频功能上添加一个 try/catch。 IE用户如果还在用这个浏览器,就不应该让他们有声音...

标签: javascript html internet-explorer


【解决方案1】:

我知道这个问题很老,但我刚刚遇到了同样的问题,想发布我学到的东西。

您的音频播放器是否成功加载了音频?如果 src="#" 或者您给播放器提供了错误的音频文件路径,那么您提供的代码行将给出您提到的错误。

我建议尝试以下代码,其中 audioPlayer 是音频元素的 id,以执行简单检查音频文件确实已加载:

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

当然,如果您希望音频已加载,请修复音频文件的路径

【讨论】:

    【解决方案2】:

    在IE11中,在加载视频元数据之前访问视频的currentTime属性时出现此错误。所以下面的代码解决了我的错误。

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

    希望这对某人有所帮助。

    【讨论】:

    • 对于打字稿/反应这很好。 this.audioEl.onloadedData = function(): void { this.audioEl.currentTime = newTime; }.bind(this);
    • 这节省了我几个小时!
    • 这也为我节省了在 IE11 中运行的 Angular 7 应用程序。非常感谢!!!
    【解决方案3】:

    只是想补充一点,将 Wav 文件转换为 MP3 为我解决了这个问题。使用https://stackoverflow.com/a/20462684/5053952 防止了错误,但 Wav 文件仍然无法播放。转换为 MP3 完全解决了这个问题。

    (Win10上的IE11)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      相关资源
      最近更新 更多