4

1 つのチャンネルだけでオシレーター サウンドを再生しようとしましたが、うまく動作しませんでした。

ノードを使用しpannerてサウンドの位置を設定しようとしましたが、両方のチャンネルでまだ再生されますが、遠くのチャンネルではそれほど大きくありません.

私の最近の試みでは、チャンネルの統合を使用しようとしましたが、両方のチャンネルで引き続き再生されます。

var audioContext = new webkitAudioContext();
var merger = audioContext.createChannelMerger();
merger.connect(audioContext.destination);

var osc = audioContext.createOscillator();
osc.frequency.value = 500;
osc.connect( merger, 0, 1 );
osc.start( audioContext.currentTime );
osc.stop( audioContext.currentTime + 2 );

単一のチャンネルでのみ再生するオシレーターをどのように作成しますか?

4

1 に答える 1

3

うーん、奇妙な - マージャーの入力が接続されていないときのバグのようです。回避するには、次のように、ゼロに設定されたゲイン ノードを他の入力に接続するだけです。

var audioContext = new webkitAudioContext();
var merger = audioContext.createChannelMerger(2);
merger.connect(audioContext.destination);

var osc = audioContext.createOscillator();
osc.frequency.value = 500;
osc.connect( merger, 0, 0 );

// workaround here:
var gain= audioContext.createGainNode();
gain.gain.value = 0.0;
osc.connect( gain );
gain.connect( merger, 0, 1 );
// end workaround

osc.start( audioContext.currentTime );
osc.stop( audioContext.currentTime + 2 );
于 2013-01-23T00:29:45.480 に答える