我正在使用一个名为 audio.js 的 javascript 垫片来提供带有 Flash 回退的 HTML5 音频。我现在可以在所有现代浏览器以及 Android 和 iO 中使用它,但是有一个问题我似乎无法解决,那就是在 Firefox 或 Android 中,当我使用在轨道结束时触发的回调时,我无法重播声音的。文件在播放结束时卡住。
该项目是一个幻灯片,其逻辑取决于每个轨道结束时触发的回调。这是我尝试使用回调的方式:
audio.trackEnded=function() {
// operate on the DOM
}
这是来自 audio.js API 的一点:
trackEnded: function(e) {
this.skipTo.apply(this, [0]);
if (!this.settings.loop) this.pause.apply(this);
this.settings.trackEnded.apply(this);
}
我没有任何运气深入研究 API 试图弄清楚如何重置音频文件。我所知道的是,无论我在 trackEnded 函数中添加了什么,在需要 Flash 的浏览器中,文件最后都会冻结,当我删除该函数时,音频会很好地重置。并尝试通过设置 currentTime = 0 来对音频元素本身进行操作;打破了整个事情。
这是音频冻结的演示,您可以在单击幻灯片后看到:
http://www.jontakiff.com/audio-playback/skeleton.html
任何关于我如何解决这个问题的见解都将非常感激。
编辑:这里是 audio.js API 的链接:http: //kolber.github.com/audiojs/docs/