ScriptProcessorNode: audioprocess イベント

非推奨: この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

ScriptProcessorNode インターフェイスの audioprocess イベントは、スクリプトプロセッサーの入力バッファーが処理される準備ができた時発火します。

メモ: この機能は AudioWorklets および AudioWorkletNode インターフェイスに置き換えられました。

このイベントはキャンセル不可で、バブルしません。

イベント型

AudioProcessingEvent です。Event を継承しています。

Event AudioProcessingEvent

イベントプロパティ

親の Event から継承したプロパティも実装しています。

playbackTime 読取専用

音声が再生される時間を表す double の値です。AudioContext.currentTime の時間として定義されます。

inputBuffer 読取専用

処理対象の入力音声データが格納されたバッファーの AudioBuffer です。 チャンネル数はファクトリーメソッド AudioContext.createScriptProcessor() の引数 numberOfInputChannels で指定した数です。 返される AudioBuffer はイベントハンドラーのスコープでのみ有効であることに注意してください。

outputBuffer 読取専用

出力音声データを格納する先であるバッファーの AudioBuffer です。 チャンネル数はファクトリーメソッド AudioContext.createScriptProcessor() の引数 numberOfOutputChannels で指定した数です。 返される AudioBuffer はイベントハンドラーのスコープでのみ有効であることに注意してください。

js
scriptNode.addEventListener("audioprocess", (audioProcessingEvent) => {
  // 入力バッファーは、前に読み込んだ歌です
  const inputBuffer = audioProcessingEvent.inputBuffer;

  // 出力バッファーには、変更されて再生されるサンプルが入ります
  const outputBuffer = audioProcessingEvent.outputBuffer;

  // 出力の各チャンネルについてループします (今回は 1 個のみ)
  for (let channel = 0; channel < outputBuffer.numberOfChannels; channel++) {
    const inputData = inputBuffer.getChannelData(channel);
    const outputData = outputBuffer.getChannelData(channel);

    // 4096 個のサンプルについてループします
    for (let sample = 0; sample < inputBuffer.length; sample++) {
      // 出力を入力と同じにします
      outputData[sample] = inputData[sample];

      // 出力の各サンプルにノイズを加えます
      outputData[sample] += (Math.random() * 2 - 1) * 0.2;
    }
  }
});

イベントハンドラーを onaudioprocess プロパティを用いて設定することもできます。

js
scriptNode.onaudioprocess = (audioProcessingEvent) => {
  // ...
};

仕様書

2014 年 8 月 29 日の Web Audio API specification の発行以降、この機能は非推奨になりました。この機能は標準化を検討されていません。

この機能は AudioWorklets および AudioWorkletNode インターフェイスに置き換えられました。

ブラウザーの互換性

BCD tables only load in the browser

関連情報