2015-05-14 61 views
1

我正在製作一款遊戲,根據音樂播放的情況更改其中的某些對象。每首歌曲結束後,我希望我的音頻上下文加載到一個新的來源並進行分析。然而,無論何時我試圖這樣做,我得到的錯誤是音頻對象或緩衝區不能被調用兩次。如何在網絡音頻環境下更改源代碼

經過一番研究後,我瞭解到ctx.createMediaElementSource(MyHTML5AudioEl)可以讓你創建一個從HTML5對象獲取源代碼的sourceNode。有了這個,我可以循環播放不同的歌曲。

但是對於我的遊戲,我需要播放/分析來自Spotify API的30秒「遠程網址」。我可能是錯的,但ctx.createMediaElementSource(MyHTML5AudioEl)不允許您分析遠程站點上的源。

此外,該遊戲需要在Mobile Chrome上運行,其中createMediaElementSource(MyHTML5AudioEl)似乎無法工作。

我可能在這裏完全錯誤的路徑,但我的主要問題是: 如何在Web音頻API中切換遠程歌曲網址。與它兼容的移動鉻。

謝謝!

回答

2

首先,當您發現時,您不能再爲AudioBufferSource設置緩衝區。解決方案是創建一個新的。 AudioBufferSource s旨在成爲您可輕鬆創建和使用的輕量級對象。

其次,在Chrome 42及更新的版本中,createMediaElementSource需要適當的CORS訪問權限,因此您必須確保遠程URL發送適當的標頭,並適當設置crossOrigin屬性。

最後,Mobile Chrome目前不會通過createMediaElementSource傳遞音頻元素中的數據。

+0

非常感謝您的awnsers,根據您提供的信息我提出了一個合適的解決方案! – DennisL