据我所知,google Chrome (v21) 中的 Web Audio API 不支持以下内容:
source.playbackRate.value = -1;
我非常希望!我会耐心等待,但与此同时,这篇文章有一个不错的替代解决方案。我采用它来尝试反转从加载的 bufferlist加载的我自己的音频样本,希望我可以同时拥有每个加载的缓冲区的正向和反向版本,如下所示:
function finishedLoading(bufferList) {
for (var it = 0; it < this.urlList.length; ++it) {
storedBuffer[it] = bufferList[it]; // assign bufferList to globals
storedBufferR[it] = bufferList[it];
// attempt to reverse storedBufferR only ...
Array.prototype.reverse.call( storedBufferR[it].getChannelData(0) );
Array.prototype.reverse.call( storedBufferR[it].getChannelData(1) );
}
}
上面的函数确实反转了播放,但是它反转了“storedbufferR”和“storedbuffer”,这样所有的缓冲区都被反转了!
所以这就是我迷路的地方......我知道 Array.protoype 会影响所有数组,所以我想我可以看到“storedBuffer”如何受到“storedBufferR”上的反向方法的影响。编辑:反向方法只影响有问题的数组
但是是否可以重写上述函数以确保 array.protoype 只影响我想要反转的存储缓冲区?如果没有,是否有另一种方法可以同时存储正向和反向版本?