我发现我喜欢setTargetAtTime()
的声音来获得增益。所以我想这样做:
gainNode.gain.setTargetAtTime(0, audioContext.currentTime, timeConst)
oscillator.stop(audioContext.currentTime + timeConstToSeconds(timeConst));
这样,当声音在功能上听不到时,振荡器便会停止。
有效的
timeConstToSeconds()
功能是什么?和/或,反向操作的有效公式是什么? (输入秒,返回时间常数。)
最佳答案
规范准确地告诉您setTargetAtTime
的工作方式:https://webaudio.github.io/web-audio-api/#dom-audioparam-settargetattime
作为一般的一般规则,通常认为这些指数方法在5或10个时间常数后已收敛到最终值,因此function timeConstToSeconds(t) { return 10*t;}
将10
更改为您认为足够接近的其他适当值。