2020解決方案:
當(dāng)音訊元資料尚未載入時(shí),您將獲得undefined
或NaN
(不是數(shù)字)。因此,有些人建議先使用onloadedmetadata
確保音訊檔案的元資料被取得。此外,大多數(shù)人沒有提到的是,您必須使用[0]
來(lái)定位音訊DOM元素的第一個(gè)索引,像這樣:
-- 原生JavaScript:
var audio = document.getElementById('audio-1'); audio.onloadedmetadata = function() { alert(audio.duration); };
如果這不起作用,請(qǐng)嘗試以下方法,但這種方法不太可靠,而且依賴使用者的連線:
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); }); });