84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
2020解决方案:
当音频元数据尚未加载时,您将获得undefined或NaN(不是数字)。因此,有些人建议首先使用onloadedmetadata确保音频文件的元数据被获取。此外,大多数人没有提到的是,您必须使用[0]来定位音频DOM元素的第一个索引,像这样:
undefined
NaN
onloadedmetadata
[0]
-- 原生JavaScript:
var audio = document.getElementById('audio-1'); audio.onloadedmetadata = function() { alert(audio.duration); };
如果这不起作用,请尝试以下方法,但这种方法不太可靠,而且依赖于用户的连接:
setTimeout(function () { var audio = document.getElementById('audio-1'); console.log("audio", audio.duration); }, 100);
-- JQuery:
$(document).ready(function() { var audio = $("#audio-1")[0]; $("#audio-1").on("loadedmetadata", function() { alert(audio.duration); }); });
2020解决方案:
当音频元数据尚未加载时,您将获得
undefined
或NaN
(不是数字)。因此,有些人建议首先使用onloadedmetadata
确保音频文件的元数据被获取。此外,大多数人没有提到的是,您必须使用[0]
来定位音频DOM元素的第一个索引,像这样:-- 原生JavaScript:
如果这不起作用,请尝试以下方法,但这种方法不太可靠,而且依赖于用户的连接:
-- JQuery: