2012-05-13 70 views
3

我正在使用名爲audio.js的JavaScript填充程序來爲閃回提供HTML5音頻。我現在已經在所有現代瀏覽器,Android和iOs上工作了,但有一個問題我看起來無法修復,那就是在Firefox或Android中,當我使用在軌道結尾觸發的回調函數時,我無法重播音頻。該文件在播放結束時卡住。用於HTML5的javascript填充程序音頻問題

該項目是一個幻燈片,其邏輯取決於每個軌道結束時觸發的回調。以下是我想要使用的回調:

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

你是用純JavaScript編碼的,還是使用jQuery,dojo或Mootools等庫? –

+0

我正在使用jQuery。 – johnnyb

回答

0

很抱歉的評論,只是看了看網頁代碼。你可以嘗試jQuery的連接plugin.here是一些參考:

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 
} 
+0

解決!一位好友指出我在API中的答案。 – johnnyb