缓存为空时获取音频文件的持续时间属性的问题

我在获取audio / mpeg(mp3)的元数据时遇到问题。

例如,我使用JS来获取音频文件的持续时间,当缓存为空时,持续时间值返回“Infinity”(NaN)。

我已尝试使用events / attributes preload和onloadedmetadata,并且当缓存为空时,我无法获得音频的持续时间和其他属性。

注意:问题出在我清理缓存时(或访问者第一次访问页面时)。

audioElement = new Audio('http://www.html5rocks.com/en/tutorials/audio/quick/test.mp3'); console.log(audioElement); audioElement.addEventListener("loadedmetadata", function(_event) { var duration = audioElement.duration; console.log( duration ); }); 

也许是因为你的媒体是流媒体?

请参阅https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement

持续时间只读双倍
媒体长度(以秒为单位),如果没有可用的媒体数据,则为零。 如果媒体数据可用但长度未知,则此值为NaN。 如果媒体是流式传输且没有预定义长度,则值为Inf

 audioElement = new Audio('http://www.html5rocks.com/en/tutorials/audio/quick/test.mp3'); console.log(audioElement); audioElement.addEventListener("loadedmetadata", function(_event) { var duration = audioElement.duration; console.log( duration ); });