关于 html5 <audio> 事件的一些疑问

audio 的 canplaythrough 事件表示的是音频能够不停顿地一直播放,可是这个事件为什么发生在表示浏览器正在下载指定的音频的事件之前(progress事件),而且这两个事件为什么都触发了不止一次?

<!DOCTYPE html>

<html>


<head>

    <meta charset="UTF-8">

    <title>Audio-demo</title>

</head>


<body>

    <audio id="audio-demo" src="http://www.sample-videos.com/audio/mp3/india-national-anthem.mp3" controls preload="metadata">

    </audio>

    <script>

        var audio = document.getElementById('audio-demo');

        audio.onloadstart = function() {

            console.log('loadstart');

        }

        audio.onprogress = function() {

            console.log('progress');

        }

        audio.oncanplaythrough = function() {

            console.log('canplaythrough');

        }

    </script>

</body>


</html>

https://img1.mukewang.com/5be52c590001325c02640141.jpg

慕慕森
浏览 531回答 1
1回答

函数式编程

因为你的音视频不是一次性下载下来的,而是分段下载播放的,所以会重复触发progress和canplaythrough。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript