2016-09-15 37 views
0

我正在使用JavaScript中的Web Audio API。 我當前項目的一部分涉及到一個活套,我需要動態地改變活套的開始和結束點。哪個在工作。JS /網絡音頻:如何在播放時立即跳轉到loopStart?

但我需要音頻文件的播放位置移動到我設置時的起始點。我一直在使用Google和Google閱讀規範,但似乎無法找到答案。

我知道你可以用start()函數來設置它,但是我需要在它已經播放的時候改變它。 謝謝!

+0

你問的是如何啓動一個事件,當循環點改變時立即啓動start()? – William

+0

是的,我希望有一種方法可以在不創建新的AudioBufferSource的情況下跳轉到新的點...但似乎沒有。這似乎是一個非常多的工作(不是在代碼行中,而是在理論上發生了什麼)來改變當前的播放位置。 –

回答

1

如果我明白你要做什麼,我認爲唯一的方法是使用相同的緩衝區創建一個新的AudioBufferSource。使用與原始相同的循環點調整新的AudioBufferSource,然後用正確的開始時間和偏移量調用start()

+0

你是對的。在我所有的其他音頻節目中,都有一種動態改變當前播放位置的方法。在Web Audio API中,似乎並非如此。你必須重新啓動一個新的AudioBufferSource並在新的點啓動它。這看起來相當低效,但也許我沒有從其他語言/庫中獲取全部圖片。 –

+1

創建(並放棄)AudioBufferSource應該是非常輕量級的;您可以在AudioBufferSource節點之間共享底層的AudioBuffer。 –