1. 開発者向けのウェブ技術
  2. Web API
  3. BaseAudioContext
  4. createChannelSplitter()

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

View in English Always switch to English

BaseAudioContext: createChannelSplitter() メソッド

Baseline 広く利用可能

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

createChannelSplitter()BaseAudioContext インターフェイスのメソッドで、 ChannelSplitterNode を作成します。これは音声ストリームの個々のチャンネルにアクセスし、それらを個別に処理するために使用されます。

メモ: ChannelSplitterNode() コンストラクターは ChannelSplitterNode を作成するための推奨される方法です。 AudioNode の作成を参照してください。

構文

js
createChannelSplitter(numberOfOutputs)

引数

numberOfOutputs

入力オーディオストリームのうち、個別に出力したいチャンネル数です。この引数が指定されていない場合の既定値は 6 です。

返値

ChannelSplitterNode です。

次の単純な例では、ステレオトラック(例えば音楽)を分離し、左チャンネルと右チャンネルを別々に処理する方法を示しています。これを使うには、 AudioNode.connect(AudioNode) メソッドの第 2、第 3 引数を使って、接続元のチャンネルのインデックスと接続先のチャンネルのインデックスを指定することが必要です。

js
const ac = new AudioContext();
ac.decodeAudioData(someStereoBuffer, (data) => {
 const source = ac.createBufferSource();
 source.buffer = data;
 const splitter = ac.createChannelSplitter(2);
 source.connect(splitter);
 const merger = ac.createChannelMerger(2);
 // 左チャンネルのボリュームのみ小さくする
 const gainNode = ac.createGain();
 gainNode.gain.setValueAtTime(0.5, ac.currentTime);
 splitter.connect(gainNode, 0);
 // スプリッターをマージャーの 2 番目の入力に接続すると、チャンネルが効果的に交換され、
 // ステレオイメージが反転します。
 gainNode.connect(merger, 0, 1);
 splitter.connect(merger, 1, 0);
 const dest = ac.createMediaStreamDestination();
 // ChannelMergerNode を使っているので、ステレオの MediaStream が
 // できました。これでウェブオーディオグラフを WebRTC や MediaRecorder などに
 // パイプするのに使えます。
 merger.connect(dest);
});

仕様書

仕様書
Web Audio API
# dom-baseaudiocontext-createchannelsplitter

ブラウザーの互換性

関連情報

MDN の改良に協力

協力方法を知る

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

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