2 回答

TA貢獻2080條經驗 獲得超4個贊
您甚至沒有使用正確的方法來檢查加載狀態。請參閱下面的代碼片段,可以做到這一點。
您需要使用表示的canplaythrough事件
瀏覽器估計它可以在不停止內容緩沖的情況下播放媒體直到結束。
您正在使用的事件complete實際上是在以下情況下觸發的
OfflineAudioContext 的呈現終止。
// https://freesound.org/people/jefftbyrd/sounds/486445/
var audioFile = "https://raw.githubusercontent.com/hitoribot/my-room/master/audio/test/test.mp3";
var audioElem = document.querySelector("audio");
var startElem = document.querySelector("button");
var resultScreen = document.querySelector("p");
function checkAudio() {
audioElem.setAttribute("src", audioFile);
audioElem.addEventListener('canplaythrough', (event) => {
resultScreen.innerHTML = "loaded audio";
});
}
startElem.addEventListener("click", function() {
checkAudio();
});
<audio controls="controls" src=""></audio>
<button>load audio</button>
<div class="result">
<h1>Audio file status:</h1>
<p></p>
</div>

TA貢獻1788條經驗 獲得超4個贊
您可以使用該onload事件在加載完整音頻時獲得通知:
function checkAudio() {
audioElem.setAttribute("src", audioFile);
audioElem.onload= ()=>{
resultScreen.innerHTML = "loaded audio";
}
}
startElem.addEventListener("click", function(){
checkAudio();
});
添加回答
舉報