exponentialRampToValueAtTime(value, time)
为0, value
会触发错误,这是有道理的,因为0的日志未定义,但如果value
过于接近0,则显然也会触发错误1e-150
1}}。
值参数可能的最小数值是什么?
答案 0 :(得分:2)
可能是32位浮点数的最小正常值,即-126或约1.18e-38。规范实际上并没有说它必须是正常值,但我不会乱用非正规值;它可以降低性能(或者在某些硬件上只是舍入到零)。
当然,1.18-38是一个非常小的增益值,当样本转换为整数并发送到声音硬件时,这些小数字只会四舍五入为零。您也可以使用更大的值,例如1/32768,除非您因某种原因将其传递到后续的高增益阶段。
BUT
当你渐渐沉默时,你可能无论如何也不应该使用exponentialRampToValueAtTime。你应该使用setTargetAtTime。这使您可以控制指数斜坡的速度。这也意味着您不必担心最小允许目标值,因为您可以使用零作为目标。