我正在使用名为audio.js的javascript shim来提供带有闪回后备功能的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功能中放置什么,在需要闪存的浏览器中,文件最后冻结,当我删除该功能时,音频重置就好了。并尝试通过设置currentTime = 0来操作音频元素本身;打破了整个事情。
这是一个音频冻结的演示,您可以在点击幻灯片后看到:
http://www.jontakiff.com/audio-playback/skeleton.html
任何有关我如何解决这个问题的见解都将非常感激。
编辑:这是audio.js API的链接:http://kolber.github.com/audiojs/docs/
答案 0 :(得分:0)
对不起评论,只是看看页面代码。你可以尝试jQuery Connect插件。这里有一些参考:
http://archive.plugins.jquery.com/project/jqConnect
,jquery代码如下所示:
$.connect(audio,'trackEnded',window,window.trackEnded);
请注意,您需要将trackEnded函数用作以下格式的常规函数:
function trackEnded(){
//code here
}