Mediaelement.js - 使用IE 11获取NaN

时间:2014-02-14 15:33:27

标签: internet-explorer-11 mediaelement.js

在mediaelement.js音频播放器上,我在进度条和“持续时间”指示器中获得NaN,但只有在IE 11中查看时,在Firefox 26中一切正常。这似乎意味着它不是服务器问题,但我见过的其他报告说它是。

任何人都有任何想法,如果它可能是服务器问题我需要查看什么(Apache服务器)?

@BiscuitBaker的以下代码将重现此问题:

$('document').ready(function() {
   $('video,audio').mediaelementplayer({
   audioWidth: 440,
   audioHeight: 30,
   // The file contains an audio watermark, so I've set the volume to 0 as I don't want this to be seen as self promotion.
   startVolume: 0 
  });
});
.container {
    margin-top: 50px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<!-- Standard mediaelement.js files, unmodified -->
<link rel='stylesheet' href='http://beta.musicvine.net/wp-content/themes/theMusicVine/library/js/mediaelement/mediaelementplayer.css' type='text/css' media='all' />
<script src="http://beta.musicvine.net/wp-includes/js/mediaelement/mediaelement-and-player.min.js"></script>

<div class="container">
    <audio controls src="http://beta.musicvine.net/wp-content/uploads/edd/2015/02/joyful-moments-adi-goldstein-preview.mp3"></audio>
</div>

1 个答案:

答案 0 :(得分:2)

这似乎是由Internet Explorer中的问题引起的,如果服务器没有使用Content-Length标头响应,则duration元素的audio属性为{{1 }}。您可以通过在开发人员工具控制台中运行以下代码来查看此内容。

Infinity

以下是服务器响应标头的屏幕截图。

headers no content-length

但是,如果我用响应document.querySelector('audio').duration 标题的服务器替换音频网址,例如此标题,则它可以正常工作。

Content-Length

archive.org文件的标题截图。

headers with content-length

我还通过在本地服务器上提供文件进行了双重检查,并且在提供https://archive.org/download/TESTTEST_174/asdfasdfasdfdfdszadfdsa.mp3 时它可以正常工作。

所以你的问题显然是服务器配置问题。实际上,您网站上静态文件的所有响应标头都缺少Content-Length标头。我不知道是什么原因导致Apache服务器不包含此标头,可能是Content-Length规则,但这是导致问题的原因。