javascript shim for HTML5 Audio问题

时间:2012-05-13 16:21:13

标签: jquery html5 javascript html5-audio

我正在使用名为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/

1 个答案:

答案 0 :(得分:0)

对不起评论,只是看看页面代码。你可以尝试jQuery Connect插件。这里有一些参考:

http://beyondrelational.com/modules/2/blogs/61/posts/11231/what-is-jquery-connect-how-to-use-jquery-connect.aspx

http://archive.plugins.jquery.com/project/jqConnect

,jquery代码如下所示:

$.connect(audio,'trackEnded',window,window.trackEnded);

请注意,您需要将trackEnded函数用作以下格式的常规函数​​:

function trackEnded(){
    //code here
}