Movatterモバイル変換


[0]ホーム

URL:


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

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

View in EnglishAlways switch to English

AudioWorkletNode: port プロパティ

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月⁩.

AudioWorkletNode インターフェイスの読み取り専用プロパティport は、関連付けられたMessagePort を返します。これにより、ノードと対応するAudioWorkletProcessor の間で双方向通信ができます。

メモ:チャネルのもう一方の端にあるポートは、処理器のport プロパティから参照できます。

このAudioWorkletNode と対応するAudioWorkletProcessor を繋ぐMessagePort オブジェクトです。

双方向通信でできることのデモのため、無音を出力し、AudioWorkletNode からの ping 要求に応えるAudioWorkletProcessor を作成します。

まず、独自のAudioWorkletProcessor を定義し、登録します。これは別のファイルで行うことに注意してください。

js
// ping-pong-processor.jsclass PingPongProcessor extends AudioWorkletProcessor {  constructor(...args) {    super(...args);    this.port.onmessage = (e) => {      console.log(e.data);      this.port.postMessage("pong");    };  }  process(inputs, outputs, parameters) {    return true;  }}registerProcessor("ping-pong-processor", PingPongProcessor);

そして、メインスクリプトファイルで処理器をロードし、処理器の名前を渡してAudioWorkletNode のインスタンスを作成し、このノードを音声グラフに接続します。

js
const audioContext = new AudioContext();await audioContext.audioWorklet.addModule("ping-pong-processor.js");const pingPongNode = new AudioWorkletNode(audioContext, "ping-pong-processor");// 毎秒、AudioWorkletNode から// 文字列 'ping' が入ったメッセージを AudioWorkletProcessor に送るsetInterval(() => pingPongNode.port.postMessage("ping"), 1000);pingPongNode.port.onmessage = (e) => console.log(e.data);pingPongNode.connect(audioContext.destination);

このプログラムは、コンソールに毎秒文字列"ping""pong" を出力します。

仕様書

Specification
Web Audio API
# dom-audioworkletnode-port

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp