7

モノラル入力を取り、左または右チャンネルでのみ再生する (簡単な) 方法はありますか? 私は ScriptProcessing ノードを介してそれを行うことができると考えていますが、この状況を処理するためのノードがあれば、私は本当に知りたいです. API にはミキシングに関するセクションがありますが、この方法でチャネルを自分で操作する方法に関するコードは見当たりません。

注、私はパンナーノードを試しましたが、右チャンネルから左チャンネルを実際にカットしているようには見えません.1つのチャンネルから別のチャンネルに音を漏らしたくありません.

4

3 に答える 3

3

ChannelSplitter を使用したいのですが、チャネルが単に接続されていない場合にバグがあります。この問題を参照してください:シングル チャンネルでオシレーションを再生します。

于 2013-01-31T21:46:21.160 に答える
2

スプリッターノードを見てください:https ://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#ChannelSplitterNode-section

ChannelSplitterNodeの1つのアプリケーションは、各チャネルの個別のゲイン制御が必要な「マトリックスミキシング」を実行するためのものです。

(私はまだそれを試していません、私に知らせてください:)

于 2013-01-31T15:37:12.700 に答える
1

CreatePanner()を使用してsetPosition()から、目的のチャネルを使用できます。前のノードをパンナー ノードに接続し、パンナーを に接続することを忘れないでくださいcontext.destination

例えば:

//Lets create a simple oscilator just to have some audio in our context
var oscillator = context.createOscillator();

//Now lets create the panner node
var pannerNode = context.createPanner();

//Connecting the nodes
oscillator.connect(pannerNode); //Connecting the oscillator output to the panner input
pannerNode.connect(context.destination); //Connecting the panner output to our sound output

//Setting the position of the sound
pannerNode.setPosition(-1, 0, 0);//If you want it to play on the left channel
pannerNode.setPosition(1, 0, 0);//If you want it to play on the right channel

//Playing the sound
oscillator.noteOn(0);

それはあなたが必要とするものですか?

于 2013-09-04T02:58:49.610 に答える