AudioBufferSourceNode.loop
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.
La propriété loop
de l'interface AudioBufferSourceNode
est un booléen indiquant si la ressource audio doit être rejouée quand à la fin de l'AudioBuffer
.
La valeur par défaut de la propriété loop
est false
.
Syntaxe
var source = audioCtx.createBufferSource();
source.loop = true;
Value
Exemple
Dans cet exemple, la fonction AudioContext.decodeAudioData
est utilisée pour décoder une piste audio et la placer dans un AudioBufferSourceNode
. Les boutons mis à disposition permettent de lire et d'arrêter la lecture audio, et un slider est utilisé pour changer la valeur de playbackRate
en temps réel. Quand la lecture est terminée, elle boucle.
Note : Vous pouvez essayer un exemple live (or voir la source.)
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) {
"Error with decoding audio data" + e.err;
},
);
};
request.send();
}
// lie les boutons pour lire et arrêter l'audio, et le slider
play.onclick = function () {
getData();
source.start(0);
play.setAttribute("disabled", "disabled");
playbackControl.removeAttribute("disabled");
};
Spécifications
Specification |
---|
Web Audio API # dom-audiobuffersourcenode-loop |
Compatibilité des navigateurs
BCD tables only load in the browser