【发布时间】:2011-06-23 00:00:03
【问题描述】:
我真的不明白为什么下面的代码似乎可以在除 IE9 之外的所有浏览器中工作:
var audio = $("audio.laser").get(0);
if (audio != null && audio.canPlayType) {
audio.pause();
audio.currentTime = 0;
audio.play();
}
奇怪的是,它在“audio.currentTime = 0”处冻结,说“currentTime is undefined”。
【问题讨论】:
-
这段代码在什么时候被调用?此时是否已触发loadedmetadata 事件?
-
你能贴出调用这段代码的脚本吗?
-
感谢您指出加载元数据事件。我检查并没有在 IE 中触发该事件。我发现这是因为不支持我使用的 WAV 格式。我在播放声音之前添加了对音频持续时间的检查,如下所示:“audio.duration >= 0”(引用 Travis Powell 发表的文章:“duration - 获取当前媒体资源的持续时间,以秒为单位,a如果持续时间不可用,则为 NaN 值,如果媒体资源正在流式传输,则为 Infinity。")。有用。 :) 谢谢!
标签: internet-explorer html audio internet-explorer-9 html5-audio