How can I play audio in reverse with web audio API? How can I play audio in reverse with web audio API? google-chrome google-chrome

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.

Source: https://bugs.webkit.org/show_bug.cgi?id=69725


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;