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

时间:2013-04-17 10:56:37

标签: jquery html5 audio mp3 metadata

我在获取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 );
    });

2 个答案:

答案 0 :(得分:1)

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

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

  

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

答案 1 :(得分:0)

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 );
});