How can I play audio in reverse with web audio API?
You could do something like this:
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; });});
It's a super simple example - but the point is basically that you can grab the Float32Array
instance for each channel in the AudioBuffer and reverse them.
if you have an AudioBufferSourceNode element:
audioBufferSourceNode.playbackRate = -1;
-EDIT-
Webkit doesn't have that feature.
You can use <audio>
element of html5 and set playbackRate
property to negative value.
In Javascript you can do the following
var song = document.getElementsByTagName('audio')[0]; song.playbackRate = -1;