The playbackRate
property of the AudioBufferSourceNode
interface Is a k-rate AudioParam
that defines the speed at which the audio asset will be played.
The default value is 1.0
. When set to another value, the AudioBufferSourceNode
resamples the audio before sending it to the output.
Syntax
var source = audioCtx.createBufferSource(); source.playbackRate.value = 1.25; // play 25% faster than normal speed (1)
Note: Though the AudioParam
returned is read-only, the value it represents is not.
Value
An AudioParam
.
Example
In this example, the AudioContext.decodeAudioData
function is used to decode an audio track and put it into an AudioBufferSourceNode
. Buttons are provided to play and stop the audio playback, and a slider control is used to change the playbackRate
property value on the fly.
Note: You can run the example live (or view the source.) Play the song and alter the playback rate for some fun results.
<input class="playback-rate-control" type="range" min="0.25" max="3" step="0.05" value="1"> <span class="playback-rate-value">1.0</span>
function getData() { source = audioCtx.createBufferSource(); request = new XMLHttpRequest(); request.open('GET', 'viper.ogg', true); request.responseType = 'arraybuffer'; request.onload = function() { var audioData = request.response; audioCtx.decodeAudioData(audioData, function(buffer) { myBuffer = buffer; source.buffer = myBuffer; source.playbackRate.value = playbackControl.value; source.connect(audioCtx.destination); source.loop = true; }, function(e){"Error with decoding audio data" + e.err}); } request.send(); } // wire up buttons to stop and play audio, and range slider control play.onclick = function() { getData(); source.start(0); play.setAttribute('disabled', 'disabled'); playbackControl.removeAttribute('disabled'); } stop.onclick = function() { source.stop(0); play.removeAttribute('disabled'); playbackControl.setAttribute('disabled', 'disabled'); } playbackControl.oninput = function() { source.playbackRate.value = playbackControl.value; playbackValue.innerHTML = playbackControl.value; }
Specification
Specification | Status | Comment |
---|---|---|
Web Audio API The definition of 'playbackRate' in that specification. |
Working Draft |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 14 webkit | 23 | Not supported | 15 webkit 22 (unprefixed) |
6 webkit |
Feature | Android | Chrome | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | Not supported | 28 webkit | 25 | 1.2 | Not supported | Not supported | 6 webkit |