我有一個小型的網絡應用程序,點擊幾個按鈕時播放真正短的聲音位。它明確針對iOS上的移動Safari(iPad)。移動Safari:音頻+緩存清單
在閱讀了這裏和其他地方關於移動Safari上的HTML5音頻的幾個「缺點」並嘗試了一些「黑客」和技巧之後,我堅持認爲Safari看起來很簡單(因爲缺乏一個更好的詞)破碎:
我可以播放聲音A(它需要很長時間才能開始 - 我假設它是downlading [再次]?)點擊按鈕A.之後,點擊按鈕B會立即再次播放聲音A.按鈕C也一樣。在某些情況下,它會播放不同的聲音,有時甚至是正確的。但主要是聲音A.使用的格式是.aiff,現在是.m4a。
寫了一些微小的自己的版本之後,我決定與Buzz庫去處理聲音加載/播放/等等。
有趣的是,他們的演示包括遊戲,這確實幾乎什麼我需要和觸發相同的錯誤行爲。我甚至結束了任何標籤中任何移動Safari中的音頻播放器都會從Buzz演示遊戲(!)中播放特定聲音的情況。
我希望緩存清單可能有助於克服Apples預加載限制並強制應用程序在離線模式下點擊按鈕後播放聲音。但在確認整個應用程序已被緩存後,我無法在離線模式下播放/聽到任何聲音。
有沒有人設法得到這樣的東西以某種方式工作?( - 我們已經看到蘋果如何處理某些事情,我不希望太多的反應,雖然...)
更新1:
在這個答案的例子會導致同樣的效果:How to synthesize audio using HTML5/Javascript on iPad
更新2:
更新iOS(以及Safari)似乎可以解決音頻問題。儘管如此,緩存清單似乎並不影響音頻文件。這些文件根本不可用。
刪除緩存清單後,應用程序可以正常工作,但將其添加到「主屏幕」並重新加載後,會阻止播放音頻。
非常感謝!看來這裏有很多好的建議。肯定會嘗試一些事情。 – polarblau
您應該知道的另外一件事是,在iOS上無法緩存音頻或視頻。即使使用appcache。 – idbehold
你可以給出一個代碼示例 - 將播放位置移動到合適的起始位置。另外,如果你想播放曲目3秒鐘,你會如何阻止它? – Jon