我想知道如何检查 HTML5 音频元素是否已加载。
要想知道音频何时可以开始播放,需要添加监听器以侦听oncanplay
或oncanplaythrough
事件。若要知道音频是否已全部加载,请侦听onloadeddata
事件:
<audio oncanplay="myOnCanPlayFunction()"
oncanplaythrough="myOnCanPlayThroughFunction()"
onloadeddata="myOnLoadedData()"
src="myaudio.ogg"
controls>
<a href="myaudio.ogg">Download</a>
</audio>
<script>
function myOnCanPlayFunction() { console.log('Can play'); }
function myOnCanPlayThroughFunction() { console.log('Can play through'); }
function myOnLoadedData() { console.log('Loaded data'); }
</script>
查看robertc的答案以了解如何使用事件监听器。您还可以直接检查音频元素的准备状态:
var myAudio = $('audio')[0];
var readyState = myAudio.readyState;
readyState
将会是一个数字。根据 Mozilla 文档:
var myAudio = new Audio(url);
var networkState = myAudio.networkState;
networkState是先前提到的readyState的有用伴侣属性,在某些上下文中可能比readyState更实用,例如确定文件是否有可能完全加载。这可以通过在设置的间隔时间内检查它来完成。
if(audio.readyState === 4) {
console.log('Audio loaded');
} else {
console.log('Audio NOT loaded');
}