MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

AudioBufferSourceNode.playbackRate

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.

Une valeur de 1.0 (c'est ) indique que le son doit être lu à la vitesse de son taux d'échantillonnage, une valeur inférieure qu'il doit être lu plus lentement, et une valeur supérieure plus rapidement. la valeur par défaut est 1.0. Pour toute autre valeur l'AudioBufferSourceNode rééchantillone le son avant de l'envoyer vers la sortie.

Syntaxe

var source = contexteAudio.createBufferSource();
source.playbackRate.value = 1.25; // proportion : 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 dont la value est un nombre flottant à double précision, qui représente la vitesse de lecture d'un son en proportion décimale du taux d'échantillonnage original.

Considérons un buffer audio échantillonné à 44.1 kHz (44,100 échantillons par seconde). Observons l'effet de quelques valeurs de la propriété playbackRate :

  • un playbackRate de 1.0 entraîne une lecture à vitesse originale : 44,100 Hz.
  • un playbackRate de 0.5 entraîne une lecture à la moitié de la vitesse originale : 22,050 Hz.
  • un playbackRate de 2.0 entraîne une lecture au double de la vitesse originale : 88,200 Hz.

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.

<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 Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support basique 14 webkit (Oui) 23 Pas de support 15 webkit
22 (unprefixed)
6 webkit
Lecture inversée avec playbackRate < 0 ? ? Pas de support Pas de support ? ?
Fonctionnalité Android Chrome Edge Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile
Support basique Pas de support 28 webkit (Oui) 25 1.2 Pas de support Pas de support webkit
Lecture inversée avec playbackRate < 0 Pas de support (Oui) (Oui) Pas de support Pas de support Pas de support Pas de support (Oui)

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : marie-ototoi
 Dernière mise à jour par : marie-ototoi,