AudioBufferSourceNode.loopEnd

La propriété loopEnd de l'interface AudioBufferSourceNode est un nombre flottant à double précision qui indique, en secondes, à quel moment de l'AudioBuffer la relecture doit s'arrêter, et éventuellement boucler de nouveau en reprenant à la position indiquée par la propriété loopStart. Elle n'est prise en compte que si la propriété loop vaut true.

Syntaxe

var source = contexteAudio.createBufferSource();
source.loopEnd = 3;

Valeur

Un nombre flottant à double précision. La valeur par défaut est 0.

Exemples

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.

Lorsque la lecture de la source audio est terminée, elle boucle. Il est possible de contrôler la durée de la boucle en modifiant loopStart et loopEnd. Par exemple, si leurs valeurs sont fixées à 20 et 25, respectivement, le son bouclera entre la 20ème et la 25ème secondes du morceau.

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();
}

  ...

loopstartControl.oninput = function() {
  source.loopStart = loopstartControl.value;
  loopstartValue.innerHTML = loopstartControl.value;
}

loopendControl.oninput = function() {
  source.loopEnd = loopendControl.value;
  loopendValue.innerHTML = loopendControl.value;
}

Spécifications

Spécification Statut Commentaires
Web Audio API
La définition de 'loopEnd' dans cette spécification.
Version de travail  

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung Internet
loopEndChrome Support complet 14Edge Support complet 12Firefox Support complet 25IE Aucun support NonOpera Support complet 15Safari Support complet 6WebView Android Support complet OuiChrome Android Support complet 18Firefox Android Support complet 26Opera Android Support complet 14Safari iOS Support complet OuiSamsung Internet Android Support complet Oui

Légende

Support complet  
Support complet
Aucun support  
Aucun support

Voir aussi