2012-08-04 32 views
2

我試圖用DART和Chrome使用html5音頻,並且我正在儘可能使用AudioElement的簡單方法。我希望能夠暫停聲音並在稍後恢復。我有:AudioElement恢復播放口吃一秒鐘,並停止

startSound() { 
    audioElement.src = "foo"; 
    audioElement.load(); 
    audioElement.play(); 
} 

pause() { 
    this.time = audioElement.currentTime; 
    audioElement.pause(); 
} 

unpause() { 
    audioElement.currentTime = this.time; 
    audioElement.play(); 
} 

這些連接到事件處理程序,所以當有人點擊'暫停'按鈕,播放停止。然而,當他們點擊「恢復」按鈕時,只有大約半秒鐘的時間纔會再次停止播放。

如何讓音頻恢復正常?

回答

1

Chrome似乎存在計時問題。你需要告訴Chrome播放,然後再次暫停,然後再播放,每個之間有一個短暫的延遲。

unpause方法的工作版本是:

unpause() { 
    var fn =() { 
    audioElement.currentTime = this.time; 
    audioElement.play(); 
    }; 
    fn(); 
    window.setTimeout(() => audioElement.pause(), 25); 
    window.setTimeout(fn, 50); 
} 
0

我有一個類似的問題與Chrome瀏覽器。當我「恢復」音頻元素時,它在播放之前結結巴巴,而我在Safari中沒有遇到同樣的問題。但事實證明,Chrome對我的mp3格式不太滿意。將文件的ogg版本添加到我的代碼中的源代碼解決了問題。

相關問題