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

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

構文

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

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

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

この例では、 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 の定義
草案  

ブラウザーの対応

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
基本対応Chrome 完全対応 14Edge 完全対応 12Firefox 完全対応 25IE 未対応 なしOpera 完全対応 15Safari 完全対応 6WebView Android 完全対応 ありChrome Android 完全対応 18Edge Mobile 完全対応 ありFirefox Android 完全対応 26Opera Android 完全対応 15Safari iOS ? Samsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明

関連情報

ドキュメントのタグと貢献者

このページの貢献者: mfuji09, nandenjin
最終更新者: mfuji09,