AudioWorkletGlobalScope: sampleRate プロパティ
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2021年4月以降、すべてのブラウザーで利用可能です。
AudioWorkletGlobalScope インターフェイスの読み取り専用プロパティ sampleRate は、ワークレットが属する BaseAudioContext のサンプルレートを表す float 値を返します。
値
関連付けられたサンプルレートを表す浮動小数点数です。
例
この AudioWorkletProcessor は AudioWorkletGlobalScope の特定のプロパティにアクセスできます。
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-samplerate> |