2012-05-28 36 views
3

當您在Chrome中使用音頻元素播放音頻時,會產生煩人的點擊和裂縫。至少在我的64位Linux安裝下,即使格式化並安裝了新的Fedora版本。 (Firefox和Opera都很好,即使在VirtualBox Windows 7中也是IE9)。網絡音頻API:搜索,播放/緩衝進度

但是使用Web Audio API而不是音頻元素的演示具有完美的聲音。所以我想知道是否可以像音頻元素一樣使用Web Audio API?但是有些事情你似乎無法用這個API做。或者我錯過了什麼?這個事情我找不到其中:

  • 開始播放文件被完全加載之前
  • 得到緩衝進度更新(依賴於前點)
  • 得到播放進度更新

有沒有辦法用Web Audio API來做到這一點?

這是我會用它:http://tinyurl.com/magnatune-player

回答

0

在Chrome中固定的音頻播放問題其間。所以我不再需要任何解決方法。

0

我覺得你還是應該使用<audio>爲至少是流媒體。您可以在網絡音頻把它當作一個MediaElementAudioSourceNode,如果你想:

var mediaSourceNode = context.createMediaElementSource(audioElement); 

據我所知,沒有辦法直接串流網絡音頻。實際上,網絡音頻API建議您不要:

4.9。 AudioBuffer接口

此接口表示駐留在內存中的音頻資產(用於一次性聲音和其他短音頻剪輯)。其格式是非交錯IEEE 32位線性PCM,標稱範圍爲-1 - > +1。它可以包含一個或多個頻道。通常,預計PCM數據的長度將相當短(通常略小於1分鐘)。 對於較長的聲音,例如音樂聲軌,流式傳輸應與音頻元素和MediaElementAudioSourceNode一起使用。

0

除非你使用的MediaElementAudioSourceNode(我會假設從你因爲它只是使用<audio>標籤具有相同問題的影響)AFAIK的問題的答案是:

  • 開始在完全加載之前播放文件:編號
  • 獲取緩衝區進度更新(取決於前一點):可能(您可以檢查XHR上的進度事件)
  • 得到播放進度更新:
  • 求: