La propriété playbackRate
de l'interface AudioBufferSourceNode
est un AudioParam
de type k-rate qui définit la vitesse à laquelle le contenu audio sera lu.
Sa valeur par défaut est 1.0
. Lorsque cette propriété prend une autre valeur que 1.0
. l'AudioBufferSourceNode
rééchantillone le son avant de le transmettre en sortie.
Syntaxe
var source = contexteAudio.createBufferSource(); source.playbackRate.value = 1.25; // 25% plus rapide que la vitesse normale
Note: Bien que le AudioParam
renvoyé soit en lecture seule, la valeur qu'il représente ne l'est pas.
Valeur
Un AudioParam
.
Exemple
Dans cet exemple, la fonction AudioContext.decodeAudioData
est utilisée pour décoder une piste audio et la mettre dans un AudioBufferSourceNode
. L'interface fournit deux boutons pour démarrer et arrêter la lecture, et des sliders pour modifier les propriétés playbackRate
, loopStart
et loopEnd
à la volée.
Note: Voir l'exemple complet et son code source.
<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 = contexteAudio.createBufferSource(); requete = new XMLHttpRequest(); requete.open('GET', 'viper.ogg', true); requete.responseType = 'arraybuffer'; requete.onload = function() { var donneesAudio = requete.response; contexteAudio.decodeAudioData(donneesAudio, function(buffer) { maMemoireTampon = buffer; dureeMorceau = buffer.duration; source.buffer = maMemoireTampon; source.playbackRate.value = playbackControl.value; source.connect(contexteAudio.destination); source.loop = true; loopstartControl.setAttribute('max', Math.floor(dureeMorceau)); loopendControl.setAttribute('max', Math.floor(dureeMorceau)); }, function(e){"Erreur lors du décodage des données audio " + e.err}); } requete.send(); } // connecte les boutons pour lancer et arrêter la lecture, et modifier la vitesse de lecture 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; }
Spécification
Spécification | Statut | Commentaire |
---|---|---|
Web Audio API La définition de 'playbackRate' dans cette spécification. |
Version de travail |
Compatibilité navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Support basique | 14 webkit | 23 | Pas de support | 15 webkit 22 (unprefixed) |
6 webkit |
Fonctionnalité | Android | Chrome | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Support basique | Pas de support | 28 webkit | 25 | 1.2 | Pas de support | Pas de support | 6 webkit |