Movatterモバイル変換


[0]ホーム

URL:


  1. 開発者向けのウェブ技術
  2. Web API
  3. AudioWorkletGlobalScope

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。

View in EnglishAlways switch to English

AudioWorkletGlobalScope

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2021年4月⁩.

* Some parts of this feature may have varying levels of support.

ウェブオーディオ APIAudioWorkletGlobalScope インターフェイスは、独自のAudioWorkletProcessor の派生クラスを定義するユーザーコードのグローバル実行コンテキストを表します。

それぞれのBaseAudioContextaudioWorklet プロパティに 1 個のAudioWorklet を持ち、これがコードを 1 個のAudioWorkletGlobalScope で実行します。

グローバル実行コンテキストは現在のBaseAudioContext で共通なので、AudioWorkletProcessor の派生クラスを定義するだけでなく、他の変数を定義するなど、ワークレットでできることはなんでもできます。

WorkletGlobalScope AudioWorkletGlobalScope

インスタンスプロパティ

このインターフェイスは、親インターフェイスのWorkletGlobalScope で定義されたプロパティも継承します。

currentFrame読取専用

処理されている音声ブロックの現在のサンプルフレームを表す、単調増加の整数を返します。この値は、各音声ブロックを処理するごとに 128 (render quantum のサイズ) 増えます。

currentTime読取専用

処理中の音声ブロックのコンテキスト時刻を表す単調増加のdouble 値を返します。ワークレットが属しているBaseAudioContextcurrentTime プロパティと同じ値です。

sampleRate読取専用

属しているBaseAudioContext のサンプルレートを表すfloat 値を返します。

インスタンスメソッド

このインターフェイスは、親インターフェイスのWorkletGlobalScope からもメソッドを継承します。

registerProcessor()

AudioWorkletProcessor インターフェイスの派生クラスを登録します。これにより、登録したクラスが登録した名前を指定することでAudioWorkletNode の生成に使用できるようになります。

この例では、独自のAudioWorkletProcessor のコンストラクターで、すべてのグローバルプロパティをコンソールに出力します。

まず、処理器を定義して登録する必要があります。これは別のファイルで行うことに注意してください。

js
// test-processor.js で定義された AudioWorkletProcessorclass TestProcessor extends AudioWorkletProcessor {  constructor() {    super();    // 生成時のサンプルフレームと時刻を記録する。    // これらの値には AudioWorkletGlobalScope からアクセスできる。    console.log(currentFrame);    console.log(currentTime);  }  // process メソッドは必須である。  // (最初から入っている) 無音を出力する。  process(inputs, outputs, parameters) {    return true;  }}// サンプルレートを記録する。// これは BaseAudioContext の読み取り専用プロパティであり、// 生成時にのみ設定されるので、変化しない。console.log(sampleRate);// 任意の変数を宣言し、処理器で利用できる。// たとえば、波形テーブルが入った ArrayBuffer を宣言できる。const usefulVariable = 42;console.log(usefulVariable);registerProcessor("test-processor", TestProcessor);

次に、メインスクリプトファイルで処理器をロードし、処理器の名前を渡してAudioWorkletNode のインスタンスを生成し、生成したノードを音声グラフに接続します。コンソールにconsole.log() の呼び出しによる出力が出るはずです。

js
const audioContext = new AudioContext();await audioContext.audioWorklet.addModule("test-processor.js");const testNode = new AudioWorkletNode(audioContext, "test-processor");testNode.connect(audioContext.destination);

仕様書

Specification
Web Audio API
# AudioWorkletGlobalScope

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp