2013-11-04 140 views
0

我正在開發使用HTML5的移動Web應用程序& Javascript。我們的目標是創建一個頁面,其中包含觸摸事件後播放聲音的按鈕,並使用HTML5音頻標籤。但是我注意到觸摸事件和正在播放的聲音之間存在顯着的延遲,即使在音頻文件已被緩存之後。我認爲這可能是由於iOS Safari處理聲音的方式,但我不確定。有沒有解決方案或創造性的解決方法來解決這個問題?我怎樣才能最大限度地減少觸摸事件和播放之間的延遲?HTML5移動網絡應用程序的音頻延遲

回答

3

音頻延遲可能是由於iOS中存在因蜂窩數據收費而導致的緩衝問題。用戶必須明確地觸發事件才能開始下載內容。

在iOS上的Safari(適用於所有設備,包括iPad),用戶可能位於蜂窩網絡並按每個數據單元收費時,將禁用預加載和自動播放。直到用戶啓動它纔會加載數據。這意味着,除非用戶操作觸發play()或load()方法,否則JavaScript play()和load()方法在用戶啓動播放之前也處於非活動狀態。換句話說,用戶啓動的播放按鈕可以工作,但onLoad =「play()」事件不會。

- https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html#//apple_ref/doc/uid/TP40009523-CH5-SW1

===編輯===

一個潛在的改進是使用較低的比特率/高壓縮音頻的移動產品。質量將會顯着降低。只有在您的應用程序中可以接受時才使用。