2011-05-17 111 views
1

我有頁面,當用戶點擊東西時,我需要播放幾十個小音頻文件。響應能力非常重要。做html5音頻標籤吃掉資源

我想爲每個文件使用一個,並預加載音頻文件。這是一個合理的方法嗎?

謝謝。

回答

0

這似乎是一個合理的方法。但是你需要考慮幾件事情。

  • 每個聲音片段都需要保存在內存中。雖然這對大多數情況無關緊要,但打開許多選項卡的用戶可能會打開多個程序,或者舊計算機的計算機可能會變慢。特別是如果聲音文件很大。
  • 從一個可用性來看,如果我每次點擊網站上的一個按鈕時聽到一聲響,我會馬上離開
+0

據我所知,音頻文件本身使用內存 - 這就是你我想知道的是我浪費了大量的內存來保存實例化幾十個音頻標籤,而不是隻使用一個,並找到其他方式預先加載.mp3文件。 - 關於可用性,這是一個外語學習程序,用戶在點擊事物時很高興聽到聲音! – jack 2011-05-18 09:32:08

2

這是合理的,也可能是正確的解決方案。我最近編寫了一個演示應用程序(http://www.soundscribe.com),它大量使用HTML5中的單個(同時)音頻剪輯。 IE9和FF3/4處理得很好。 Chrome的某些問題似乎與同時播放有關(可能不適用於您的應用)。我碰到的最大的障礙是IE9,它似乎對可以一次存在的音頻對象數量有着神祕的限制。最大值約爲40,之後IE9將默默無法下載文件。 FF和Chrome都試圖支持無限數量。

由於幾個原因,將所有音頻放入單個文件並更改要播放的偏移量的替代方法是一個糟糕的選擇。編寫代碼要複雜得多,你需要跟上額外的元數據(剪輯開始的地方,它的時間有多長),而且在瀏覽器之間可能略有不同。而最糟糕的是,當剪輯完全加載時,真的無法知道。您只能告訴剪輯何時可以播放,這是由瀏覽器根據音頻文件的大小和當前下載速率確定的。這意味着即使在瀏覽器報告音頻剪輯準備就緒之後,您可能無法在接近尾聲的位置播放剪輯。

+0

謝謝。這真是一個有用的答案! – jack 2011-05-19 07:29:59

+0

ie9中的最大音量是41個同步音頻。第42及以後不加載。你有沒有找到任何解決方案? – dragonroot 2013-01-07 02:14:58

2

我使用經驗SoundManager2(音頻的Javascript LIB)是Chrome的也不火狐沒有問題加載和播放多個(100+)的聲音通過他們的Html5的能力 (火狐必須雖然發揮OGG)

隨着IE9是一個不同的故事。看起來像加載和播放不超過40個聲音是有限制的。 :-(

正如,我們開發的遊戲經常需要有50+聲音1分鐘時間內出場,我們不得不退回到閃光燈打在IE9的聲音..幸運的是,SM2確實太

我也我只能創建40個jPlayer實例,每個實例都可以預加載並播放它定義的聲音 第41個和後續實例將失敗,並在IE9/Windows7上發生錯誤

錯誤:「媒體網址無法加載」