Есть ли способ установить соответствующий объем Clip
в Java
?Установите громкость Java Clip
У меня есть этот метод:
public static void play(Clip clip) {
if (Settings.getSettings().isVolumeOn()) {
FloatControl volume = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
volume.setValue(-1 * Settings.getSettings().getVolume());
clip.start();
}
}
Settings.getSettings().getVolume()
возвращает Integer
в диапазоне 0 - 100
Объемы:
- 0: Нет звука
- 40: Optimal Звук с наушниками
- 60: Оптимальный звук
- 100: Full Sound
Так, по существу, это должно быть, как в масштабе VLC
(но наполовину с КПД от 0 to 200
).
Я обнаружил, что я могу уменьшить децибел клипа с помощью volume.setValue(-10f);
Но я предпочел бы что-то типа volume.setValue(clip.getMaxVolume() * Settings.getSettings().getVolume()/100)
.
Где clip.getMaxVolume()
вернет максимальный объем клипа.
Действительно ли 'gainControl.getMinimum()' необходимо? Не будет ли мой метод работать? (Обе версии работают). –
Если обе версии работают, переходите к одному без 'gainControl.getMinimum()', поскольку он немного быстрее. – Squiddie
Я только пробовал это с одним файлом, поэтому я спрашиваю, вы считаете, что другие файлы могут не работать с моим методом? –