AudioBufferSourceNode.playbackRate - швидкість відтворення AudioBuffe.
AudioBufferSourceNode.playbackRate;
AudioBufferSourceNode - об'єкт AudioBufferSourceNode.
playbackRate властивість об'єкту AudioBufferSourceNode яка представляє собою об'єкт AudioParam який вказує параметр швидкості відтворення AudioBuffer.
Для отримання/встановлення швидкості відтворення використовуйте властивість playbackRate.value. Значення позамовчуванню: 1.0.
var audio=new AudioContext();
var source=audio.createBufferSource();
alert(source.playbackRate);
var audio=new AudioContext();
var source=audio.createBufferSource();
alert('значення по замовчуванню: '+source.playbackRate.defaultValue);
alert('мінімальне значення: '+source.playbackRate.minValue);
alert('максимальне значення: '+source.playbackRate.maxValue);
if(window.AudioContext){
var ajax=new XMLHttpRequest();
ajax.open('get', '/dani/test.ogg', true);
ajax.responseType='arraybuffer';
ajax.onload=function(){
var audio=new AudioContext();
var source=audio.createBufferSource();
source.connect(audio.destination);
audio.decodeAudioData(this.response, function(bufer){
source.buffer=bufer;
source.playbackRate.value=1.5; //задаємо швидкість відтворення
source.start(); //починаємо відтворення
}, function(eror){alert('Виникла помилка при декодуванні: '+eror.message);});
};
ajax.send(null);
}else alert('Ваш браузер не підтримує Web Audio');
Приклад плавної зміни швидкості відтворення AudioBuffer:
if(window.AudioContext){
var ajax2=new XMLHttpRequest();
ajax2.open('get', '/dani/test.ogg', true);
ajax2.responseType='arraybuffer';
ajax2.onload=function(){
var audio2=new AudioContext();
var source2=audio2.createBufferSource();
source2.connect(audio2.destination);
audio2.decodeAudioData(this.response, function(bufer){
source2.buffer=bufer;
source2.playbackRate.value=0.1; //задаємо початкову швидкість відтворення
source2.playbackRate.exponentialRampToValueAtTime(2,20); //задаємо плане змінення швидкісті відтворення
source2.start(); //починаємо відтворення
}, function(eror){alert('Виникла помилка при декодуванні: '+eror.message);});
};
ajax2.send(null);
}else alert('Ваш браузер не підтримує Web Audio');