HTML5音频加载事件?
问题描述:
音频加载完成时是否有加载事件触发?我正在创建一个像这样的音频元素。HTML5音频加载事件?
var myAudio = new Audio("mySound.mp3");
myAudio.load();
尝试添加一个eventListener像这样,但它似乎并没有触发。
myAudio.addEventListener("load",soundLoaded,false);
答
音频标签的实现很依赖于浏览器。它支持我说的不会比视频标签,因为它是在史蒂夫乔布斯对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个事件:
- loadstart
- durationchange
- 等待loadedmetadata
- loadeddata
- 进度
- canplay
- canplaythrough
请注意在Internet Explorer版本9在此之前,不支持。
您是否考虑过[buzz](http://buzz.jaysalvat.com/)并查看其来源? – devdigital 2012-02-18 00:31:26
有趣的图书馆。感谢您的关注。通过查看文档“canPlayThrough”似乎是我需要的。谢谢 – user781657 2012-02-18 00:46:27