を開始する前に、私はちょうど発振器接続や発振器がまだ開始されていないときがない場合の方法setValueAtTime()
またはsetValueCurveAtTime()
でgainNode
のgain.value
を変更することはできないようだということに気づきました。発振器は、この場合、例えば ウェブオーディオ:変更ゲイン値発振器は
を開始した後、期待どおり
setValueAtTime
は、setValueAtTime
は動作します:
var context = new AudioContext();
var gain = context.createGain();
gain.connect(context.destination);
var osc = context.createOscillator();
osc.frequency.value = 300;
osc.connect(gain);
osc.start();
gain.gain.setValueAtTime(0, context.currentTime + 1);
発振器が開始され、利得が1秒間1
です。その後gain.gain.value
は0
に移動します。
setValueAtTime
発振器は、我々はsetValueAtTime
でゲインを設定した場合、発振器は
var context = new AudioContext();
var gain = context.createGain();
gain.connect(context.destination);
var osc = context.createOscillator();
osc.frequency.value = 300;
osc.connect(gain);
osc.start(context.currentTime + 1);
gain.gain.setValueAtTime(0, context.currentTime);
を開始する前にgain.gain.value
がsetValueAtTime
gain.gain.value
1に留まりますが
を開始する前に、
これは奇妙なことです私たちが直接
var context = new AudioContext();
var gain = context.createGain();
gain.connect(context.destination);
var osc = context.createOscillator();
osc.frequency.value = 300;
osc.connect(gain);
osc.start(context.currentTime + 1);
gain.gain.value = 0;
ゲイン値は常に0
私はAPIを使って遊んだとき、オシレーターを 'gain.gain'(' osc.connect(gain.gain) ')に接続する必要があることを思い出しました。これはおそらく問題とは関係がありません。完全にはわかりませんが、あなたはそれを試すことができます。 – schroffl