如何使用web audio API反向播放音频?我在API文档中找不到任何东西...
ugmeyewa1#
你可以这样做:
var context = new AudioContext(), request = new XMLHttpRequest(); request.open('GET', 'path/to/audio.mp3', true); request.responseType = 'arraybuffer'; request.addEventListener('load', function(){ context.decodeAudioData(request.response, function(buffer){ var source = context.createBufferSource(); Array.prototype.reverse.call( buffer.getChannelData(0) ); Array.prototype.reverse.call( buffer.getChannelData(1) ); source.buffer = buffer; }); });
字符串这是一个超级简单的例子-但关键是你可以在AudioBuffer中为每个通道抓取Float32Array示例并反转它们。
Float32Array
lrpiutwd2#
如果您有AudioBufferSourceNode元素:
audioBufferSourceNode.playbackRate = -1;
字符串
-编辑-
Webkit没有这个功能。来源:https://bugs.webkit.org/show_bug.cgi?id=69725
monwx1rj3#
您可以使用html5的<audio>元素,并将playbackRate属性设定为负数。在JavaScript中,您可以执行以下操作
<audio>
playbackRate
var song = document.getElementsByTagName('audio')[0]; song.playbackRate = -1;
pb3s4cty4#
playbackRate = -1.0;
字符串现在可以在Safari(9.1.2)中使用!
4条答案
按热度按时间ugmeyewa1#
你可以这样做:
字符串
这是一个超级简单的例子-但关键是你可以在AudioBuffer中为每个通道抓取
Float32Array
示例并反转它们。lrpiutwd2#
如果您有AudioBufferSourceNode元素:
字符串
-编辑-
Webkit没有这个功能。
来源:https://bugs.webkit.org/show_bug.cgi?id=69725
monwx1rj3#
您可以使用html5的
<audio>
元素,并将playbackRate
属性设定为负数。在JavaScript中,您可以执行以下操作
字符串
pb3s4cty4#
字符串
现在可以在Safari(9.1.2)中使用!