flex – 我可以使用什么算法音频音量级别?

前端之家收集整理的这篇文章主要介绍了flex – 我可以使用什么算法音频音量级别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个可以在0和1之间的滑块。SoundTransform.volume的范围是0(静音)和1(全卷)之间,但是如果我使用一个线性函数,让我们说SoundTransform.volume = slider.volume,结果相当不愉快。

我真的没有研究人类的耳朵,但我曾经听说过人类的感知是对数的,或者类似的东西。我应该使用什么算法来设置SoundTransform.volume?

解决方法

人类的感知通常是对数的,当它涉及到诸如光度等事情时,这使我们能够注册对我们的环境的小“输入信号”的小变化,或换句话说:总是实现变化的可感知的物理量相对于其价值…

因此,您应该修改卷以指数增长,如下所示:

y = (Math.exp(x)-1)/(Math.E-1)

你也可以尝试其他基地:

y = (Math.pow(base,x)-1)/(base-1)

基数的值越大,效果越强,开始时较慢的体积开始增长,最终增加的速度越快…

一个简单的方法,给你类似的结果(你只在0和1之间的间隔,因此近似很简单,实际上),是指数原始值,如

y = Math.pow(x,exp);

对于exp大于1,效果是,输出(即在你的情况下的音量)首先上升更慢,然后更快到结束…这是非常类似于指数函数…更大的exp,更强效果

greetz

back2dos

猜你在找的Flex相关文章