2014-02-14 34 views
3

在mediaelement.js音頻播放器上,我在進度條和'持續時間'指示器上獲得了NaN,但只有在IE 11,Firefox 26中查看時,一切都可以。這似乎意味着它不是一個服務器問題,但我見過的其他報告說這是事實。Mediaelement.js - 使用IE 11獲得NaN

任何人有任何想法,如果它可能是一個服務器問題,我需要看什麼(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>

+0

我也遇到過這個問題 - 在我的情況下,進度條對於非常小的MP3可以正常工作,但似乎會失敗並在大於幾MB的任何內容上生成NaN。 – BiscuitBaker

+0

OP或@BiscuitBaker可以提供[MCVE](https://stackoverflow.com/help/mcve)嗎? –

+0

@ AlexanderO'Mara如果需要,我會給OP一點時間回覆併發佈一個自己。雖然沒有太多可以進入MCVE,但我正在使用mediaelement.js網站上的bog標準實現。 – BiscuitBaker

回答

2

這似乎在Internet Explorer中,一個問題,即如果服務器不與Content-Length反應引起的標題,audio元素的duration屬性爲Infinity。您可以通過在開發人員工具控制檯中運行以下代碼來查看此內容

document.querySelector('audio').duration 

以下是您服務器的響應標頭截圖。

headers no content-length

但是,如果我從與Content-Length頭響應的服務器替換與一個音頻URL,比如這個,它工作正常。

https://archive.org/download/TESTTEST_174/asdfasdfasdfdfdszadfdsa.mp3 

archive.org文件標題的屏幕截圖。

headers with content-length

我也通過你的服務文件從我的本地服務器雙重檢查,並在供給Content-Length它的工作。

所以你的問題顯然是一個服務器配置問題。實際上,您網站上的靜態文件的所有響應標頭都缺少Content-Length標頭。我不知道什麼會導致Apache服務器不包含此頭,也許是一個mod_headers規則,但這是您的問題的原因。

+0

這就是問題所在!感謝您的詳細解答。罪魁禍首是gzip--把這個關掉恢復了標題。 – BiscuitBaker