如何检查是否加载了HTML5音频元素?

aur*_*gar 35 javascript html5-audio

我想知道如何检查是否加载了HTML5音频元素.

rob*_*rtc 48

要找出音频何时可以开始播放,请为这些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>
Run Code Online (Sandbox Code Playgroud)


lk1*_*145 23

查看robertc关于如何使用事件监听器的答案.您还可以直接检查音频元素的就绪状态:

var myAudio = $('audio')[0];

var readyState = myAudio.readyState;
Run Code Online (Sandbox Code Playgroud)

readyState将是一个数字.来自Mozilla的文档:

  • 0 - 没有关于媒体资源的信息.
  • 1 - 已检索足够的媒体资源以初始化元数据属性.寻求将不再提出异常.
  • 2 - 数据可用于当前播放位置,但不足以实际播放多个帧.
  • 3 - 当前播放位置的数据以及至少一段时间的数据是可用的(换句话说,例如,至少两帧视频).
  • 4 - 有足够的数据 - 下载速度足够高 - 媒体可以不间断地播放到最后.