AudioBufferSourceNode.playbackRate
==================================

La propriété `playbackRate` de l'interface `AudioBufferSourceNode` est un `AudioParam` de type k-rate (en-US) 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
-------


```js
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` (en-US) 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` (en-US) 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 en direct et son code source.


```html
<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>
```



```js
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) {
        "Erreur lors du décodage des données " + 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;
};
```

Spécifications
--------------

| Specification |
| --- |
| Web Audio API # dom-audiobuffersourcenode-playbackrate |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Utiliser la Web Audio API