我试图使用jQuery获取音频持续时间,但很难得到它.我正在使用的方法定义如下
var audioElement = document.createElement('audio');
audioElement.setAttribute('src','song.mp3');
audioElement.play();
var duration = audioElement.duration;
$(".songtime").html(duration);
Run Code Online (Sandbox Code Playgroud)
但它说nan有人知道如何解决这个问题吗?
由于音频尚未加载,您需要等到元素加载了元数据,有一种简单的方法:
audioElement.addEventListener("loadedmetadata", function(_event) {
var duration = audioElement.duration;
//TODO whatever
});
Run Code Online (Sandbox Code Playgroud)
问题可能不再有效,但问题是音频尚未加载文件。您应该在加载文件时添加事件
$(audioElement).on("canplay", function () {
alert(this.duration);
});
Run Code Online (Sandbox Code Playgroud)