AudioBufferSourceNode.loop
loop
は AudioBufferSourceNode
のプロパティで、 AudioBuffer
の末端に達した時に、音声を繰り返し再生するべきかを示す論理値です。
loop
プロパティの既定値は false
です。
値
例
この例では、 AudioContext.decodeAudioData()
関数は音声トラックをデコードし AudioBufferSourceNode
に追加するために使用されています。再生・停止のためにボタンが配置され、スライダーが playbackRate
プロパティを逐次変更するために使用されています。音声はループして再生されます。
メモ: 実際に動作する例を見る (または、ソースコードを見る)ことができます。
function getData() {
source = audioCtx.createBufferSource();
request = new XMLHttpRequest();
request.open("GET", "viper.ogg", true);
request.responseType = "arraybuffer";
request.onload = () => {
const audioData = request.response;
audioCtx.decodeAudioData(
audioData,
(buffer) => {
myBuffer = buffer;
source.buffer = myBuffer;
source.playbackRate.value = playbackControl.value;
source.connect(audioCtx.destination);
source.loop = true;
},
(e) => console.error(`Error with decoding audio data: ${e.err}`)
);
};
request.send();
}
// wire up buttons to stop and play audio, and range slider control
play.onclick = () => {
getData();
source.start(0);
play.setAttribute("disabled", "disabled");
playbackControl.removeAttribute("disabled");
};
仕様書
Specification |
---|
Web Audio API # dom-audiobuffersourcenode-loop |
ブラウザーの対応
BCD tables only load in the browser