HTML5音频加载事件?

问题描述:

音频加载完成时是否有加载事件触发?我正在创建一个像这样的音频元素。HTML5音频加载事件?

var myAudio = new Audio("mySound.mp3"); 
myAudio.load(); 

尝试添加一个eventListener像这样,但它似乎并没有触发。

myAudio.addEventListener("load",soundLoaded,false); 
+0

您是否考虑过[buzz](http://buzz.jaysalvat.com/)并查看其来源? – devdigital 2012-02-18 00:31:26

+0

有趣的图书馆。感谢您的关注。通过查看文档“canPlayThrough”似乎是我需要的。谢谢 – user781657 2012-02-18 00:46:27

音频标签的实现很依赖于浏览器。它支持我说的不会比视频标签,因为它是在史蒂夫乔布斯对Flash和HTML5圣战的演讲之后炒作的,足够有趣,它至少得到了Safari的支持。 对于视频标签(在事件处理程序中)不适用于音频标签的情况,它的真实效果非常好,但状态仍然正确无误。 例如:

var a = new Audio(); 
  • a.networkState和a.readyState - 通过检查这每一秒对 定时器,你可以很容易地获得有关加载的想法和播放进度。

其他有趣的性质:

  • 追求 - 如果UA目前正在寻求
  • 可搜索 - TIMERANGE对象,该对象可能寻求。
  • 播放 - TimeRange UA已播放。
  • 已暂停 - 如果播放暂停,则为真。
  • 已结束 - 如果播放结束,则为真。
  • currentTime - 以秒为单位返回/设置播放位置。
  • 时间

    使用canPlayType(类型)不要忘记 - 收益 “可能” 和 “也许”

更新:考虑看SoundManager2 - http://www.schillmania.com/projects/soundmanager2/

这听起来像你想“canplaythrough”事件。当浏览器认为它可以在不停止的情况下播放整个音频文件时触发。

尝试:

myAudio.addEventListener('canplaythrough', soundLoaded, false); 

有当音频文件被加载的是火顺序7个事件:

  1. loadstart
  2. durationchange
  3. 等待loadedmetadata
  4. loadeddata
  5. 进度
  6. canplay
  7. canplaythrough

请注意在Internet Explorer版本9在此之前,不支持。