1. 開発者向けのウェブ技術
  2. Web API
  3. AudioWorkletGlobalScope
  4. AudioWorkletGlobalScope: currentFrame プロパティ

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

View in English Always switch to English

AudioWorkletGlobalScope: currentFrame プロパティ

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2021年4月以降、すべてのブラウザーで利用可能です。

AudioWorkletGlobalScope インターフェイスの読み取り専用プロパティ currentFrame は、処理中の音声ブロックのサンプルフレームを表す単調増加の整数を返します。この値は各音声ブロックを処理するごとに 128 (render quantum のサイズ) 増えます。

整数値です。

この AudioWorkletProcessorAudioWorkletGlobalScope の特定のプロパティにアクセスできます。

js
// test-processor.js で定義された AudioWorkletProcessor
class 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);

仕様書

仕様書
Web Audio API
# dom-audioworkletglobalscope-currentframe

ブラウザーの互換性

関連情報

MDN の改良に協力

協力方法を知る

このページは MDN の貢献者によって に最終更新されました。

AltStyle によって変換されたページ (->オリジナル) /