2017-02-10 74 views
1

我有一首歌曲,我正在玩Web音頻,我安排兩個playbackRate變化,然後再播放歌曲。第一個playbackRate更改生效,但第二個不會觸發。這是預期的行爲?我錯過了什麼來完成這項工作?網絡音頻:音頻2順序playbackRate值只適用於第一個值

基本邏輯是:

sourceNode = _mySoureNodeGetterFn('blah.mp3'); 
sourceNode.start(0); 
sourceNode.playbackRate.setValueAtTime(.8, 5); 
sourceNode.playbackRate.setValueAtTime(1.2, 10); 
audioContext.resume(); 

第二playbackRate值,setValueAtTime(1.2, 10),定於10S到歌曲不會觸發。第一個playbackRate觸發很好。

我在Macbook上使用Chrome 56.0.2924.87。

+1

這已經被報告https://bugs.chromium.org/p/chromium/issues/detail?id=645776(莫名其妙),並在58金絲雀固定。另請注意,時間參數是相對於audioContext的時鐘。如果這個值已經過去了,似乎還有一個新的提議使它與currentTime相關,但目前似乎沒有人實現它,並且應該調用'setValueAtTime(val,audioCtx.currentTime + offset)'。 – Kaiido

+0

謝謝@Kaiido。看起來這個問題是在v58金絲雀裏修復的。雖然鉻錯誤似乎有點不同於我所看到的,它隨機/不確定地發生,因爲我的錯誤打破了每一個怪異的時間。解決方案是等待v58然後... – JohnW

+0

是的,我認爲核心問題是一樣的,而bug報告並不完全是同一個問題。但它確實在58年工作。 – Kaiido

回答

1

關閉循環 - 這是一個鉻v55的錯誤。在v58中修復(dunno如果在兩者之間的任何版本中修復)。