gpt4 book ai didi

java 声音,fadeIn 效果,使用 FloatControl

转载 作者:行者123 更新时间:2023-12-01 16:01:56 24 4
gpt4 key购买 nike

我正在尝试对我的 mp3 播放器实现淡入淡出效果。我在用着FloatControl volumeControl = (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);因为 FloatControl.Type.VOLUME 抛出异常(控制不可用)我不知道为什么。我需要一些关于算法的帮助,因为它不能正常工作。代码如下:

public class FloatControlFader
{
public static void fadeIn(final FloatControl control, final float from,
final float to, final int seconds)
{
final float vps = ((to-from) / (seconds*10));//Volume incrased/100millisecond
control.setValue(from);
Thread t = new Thread(new Runnable(){

public void run() {
for(int i=0; i < seconds*10; i++)
{
try
{
Thread.sleep(100);
}
catch (InterruptedException ex)
{

}
System.out.println(control.getValue()); //for DEBUG
control.setValue(control.getValue() + vps);
}
}

});
t.start();
}
}

非常感谢任何帮助,谢谢!

最佳答案

请记住,人耳的听觉不是线性的,因此以稳定的 X vps 增加听起来不会像平滑的淡入淡出。您需要在那里放置一个日志功能。然后您需要将线性增加映射到对数值。当然,这一切都是假设音量控制单位不是分贝。如果你增加 db 那就没问题了。

关于java 声音,fadeIn 效果,使用 FloatControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3636779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com