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。
这已经被报告https://bugs.chromium.org/p/chromium/issues/detail?id=645776(莫名其妙),并在58金丝雀固定。另请注意,时间参数是相对于audioContext的时钟。如果这个值已经过去了,似乎还有一个新的提议使它与currentTime相关,但目前似乎没有人实现它,并且应该调用'setValueAtTime(val,audioCtx.currentTime + offset)'。 – Kaiido
谢谢@Kaiido。看起来这个问题是在v58金丝雀里修复的。虽然铬错误似乎有点不同于我所看到的,它随机/不确定地发生,因为我的错误打破了每一个怪异的时间。解决方案是等待v58然后... – JohnW
是的,我认为核心问题是一样的,而bug报告并不完全是同一个问题。但它确实在58年工作。 – Kaiido