1

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

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

我尝试过使用事件/属性 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 );
    });
4

2 回答 2

1

也许是因为您的媒体正在流式传输?

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

duration 只读 double
媒体的长度(以秒为单位),如果没有可用的媒体数据,则为零。如果媒体数据可用但长度未知,则该值为 NaN。 如果媒体是流媒体并且没有预定义的长度,则值为 Inf

于 2013-10-07T08:37:37.243 回答
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 );
});
于 2014-01-14T12:27:33.960 回答