AudioBufferSourceNode.loop

AudioBufferSourceNodeloop プロパティは、 AudioBuffer の末端に達した時に、音声を繰り返し再生するべきかを示す論理値です。

loop プロパティの既定値は falseです。

構文

var loopingEnabled = AudioBufferSourceNode.loop;
AudioBufferSourceNode.loop = true | false;

繰り返しが有効な場合はブール値 true 、それ以外は falseです。

ループが有効である場合、 start() が呼ばれると音声は開始点として指定された場所から再生されます。 loopEnd (en-US) で指定された場所に達すると、音声は loopStart (en-US) で指定された地点に戻って再生され続けます。

この例では、 AudioContext.decodeAudioData 関数は音声トラックをデコードし AudioBufferSourceNode に追加するために使用されています。再生・停止のためにボタンが配置され、スライダーが playbackRate プロパティを逐次変更するために使用されています。音声はループして再生されます。

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

// 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');
}

仕様書

仕様書 状態 備考
Web Audio API
loop の定義
勧告  

ブラウザーの対応

BCD tables only load in the browser

関連情報