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

查看:108
本文介绍了javascript - 关于 html5 <audio> 事件的一些疑问的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

<!DOCTYPE html>
<html lang="en">

<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>

解决方案

因为你的音视频不是一次性下载下来的,而是分段下载播放的,所以会重复触发progress和canplaythrough。

这篇关于javascript - 关于 html5 &lt;audio&gt; 事件的一些疑问的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆