答案 0 :(得分:2)
你应该能够使用preload属性:
<audio autobuffer preload=”metadata” src=”audio.foo”></audio>
还有一个关于Chris Pearce's blog的建议和讨论,它基本上建议暂停然后将src设置为空字符串。正如帖子评论中所解释的那样,这种方法并不理想......你可以(理论上)在loadedmetadata事件触发后立即执行此操作,并且您已经检索了所需的元数据。
This question建议设置标头,这也可能有用......
答案 1 :(得分:0)
您不应调用load
方法。
我创建了一个函数,该函数返回一个promise,该请求将在加载元数据时解决。使用此功能,将仅加载音频文件的元数据:
function getAudioMetaData(src) {
return new Promise(function(resolve) {
var audio = new Audio();
$(audio).on("loadedmetadata", function() {
resolve(audio);
});
audio.preload = 'metadata';
audio.src = src;
});
}