2013-05-08 49 views
4

說我喜歡在Javascript中創建我自己的漸進式流式機制,因爲我發現瀏覽器內置的流式機制不夠容錯,或者我想通過WebSocket實現我自己的自定義方法。我想創建一個緩衝區來保存已經下載的連續媒體文件的段(比如說一個數組緩衝區或類似的東西)。即使該文件尚未從頭到尾下載,是否可以播放該文件?瀏覽器中的自定義漸進式音頻流

我唯一的想法是在Web Audio API which has a noteOn() function之前爲每個部分的開始計時。不過,我不知道這會是多麼美麗。另外它還引入了一個問題,即我必須準確知道音頻文件在服務器端可以安全切割的位置,以便下一部分可以被解碼而不會有任何損失和間隙。例如。即使在CBR模式下,MP3的位存儲器也能將音頻數據存儲在相鄰的音頻幀中,這使得事情變得困難。

+0

我已經餵了中間塊的MP3文件到

回答

3

如何創建從傳入緩衝區提供的ScriptProcessorNode?最大的問題是確保片段可轉換爲原始音頻樣本,但除此之外,您可以在onaudioprocess event handler中編寫一個簡單的函數,該函數將拉入下一個可用緩衝區塊並將其複製到節點的輸出緩衝區中。由於這將是一個按需按需機制,因此您無需擔心時間段回放。

+0

這絕對有效。幾個月前,我確實在確認方法中使用了這個確切的方法。只要連接速度足夠快,並且需要注意確保在下載足夠的緩衝區之前不要開始播放,這是完美無瑕的。 – 2013-05-10 00:19:01

+0

這似乎是我正在尋找。謝謝! – NagyI 2013-05-10 10:46:59

+0

嘿馬特,我試圖使用這種解決方案,但我無法將這兩部分放在一起。你可以舉個例子嗎?謝謝! – 2013-11-09 17:56:08

相關問題