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