Internet Explorer 11 HTML5 音频持续时间 = 无限问题

Internet Explorer 11 HTML5 audio duration = infinity issue

今天我遇到了一个不愉快的问题。有一个带有自定义 HTML5 音频播放器的网站。页面加载后,我尝试回显 document.getElementById("myAudioId").duration,这是实现导航所必需的。在所有其他浏览器中,它工作得很好,显示了持续时间,但 IE11 的工作方式不同——它显示持续时间等于 Infinity。但正如我注意到的那样,当歌曲缓冲到最后时,持续时间神奇地出现并且导航有效。在其他浏览器中,一切从一开始就正常。 content-length headers 设置完毕。可能是什么?

UPD: 其他带有 HTML5 音频的网站让我从一开始就看到了持续时间。我猜,持续时间是元数据的一部分,即使不使用 preload="metadata" 预加载音频文件也可以加载,但它也不起作用。

UPD2: 我也试过玩 jsfiddle 并用相同的 MP3 音频创建了相同的音频标签 - 有同样的情况。但后来我从另一个站点将 link 插入到另一个 MP3 - 并且成功了!。不仅如此,我已经将第二首歌曲上传到第一个有问题的网站,之后完美播放的歌曲也无法向我显示它的持续时间和内容。所以现在我认为这是服务器端的事情。但是不知道是什么。

UPD3: 最后,有人告诉我使用 FFMPEG 将文件转换为 MP3 128 位,然后它们就不再正常了。现在我需要找到如何转换 MP3 才能正常播放。

它在本地对我有用,但是当上传到服务器时,它就不行了。 player.duration 似乎在 IE 11 中不起作用: https://msdn.microsoft.com/en-us/library/dn254962(v=vs.85).aspx