У меня есть этот метод:
Код: Выделить всё
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();
}
}
Объемы:
- 0 : Нет звука
- 40 : Оптимальный звук с наушники
- 60: оптимальный звук
- 100: полный звук
По сути, это должно быть похоже на шкалу VLC (но наполовину, поскольку VLC от 0 до 200).
Я обнаружил, что могу уменьшить децибел клипа используя Volume.setValue(-10f);
Но я бы предпочел что-то типа Volume.setValue(clip.getMaxVolume() * Settings.getSettings().getVolume()/100).
Где clip.getMaxVolume() будет возвращать максимальную громкость клипа.>
Подробнее здесь: https://stackoverflow.com/questions/405 ... -java-clip
Мобильная версия