我发现我喜欢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更改为您认为足够接近的其他适当值。

09-25 15:37