如何使用网络音频 API反向播放音频?我似乎在 API 文档中找不到任何内容...
7253 次
4 回答
17
你可以这样做:
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;
});
});
这是一个超级简单的例子——但关键是你可以获取Float32Array
AudioBuffer 中每个通道的实例并反转它们。
于 2012-06-11T00:11:59.357 回答
6
如果您有 AudioBufferSourceNode 元素:
audioBufferSourceNode.playbackRate = -1;
-编辑-
Webkit 没有这个功能。
于 2012-03-26T15:29:19.983 回答
4
您可以使用<audio>
html5 的元素并将playbackRate
属性设置为负值。
在 Javascript 中,您可以执行以下操作
var song = document.getElementsByTagName('audio')[0];
song.playbackRate = -1;
于 2012-03-26T14:46:03.773 回答
1
playbackRate = -1.0;
现在可以在 Safari (9.1.2) 中使用!
于 2016-09-01T14:44:23.233 回答