Я бы подумал, что это будет легко сделать, но никакие поиски в интернете не нашли никаких решений.
Я написал приложение для клиента, которое работает в полноэкранном режиме и позволяет пользователю просматривать учебные книги, чтобы научить детей читать. Все идет нормально. Некоторые фразы из отображаемых материалов зачитываются пользователю и, опять же, пока все хорошо. Обычно эти звуки читаются на уровне громкости системы. (т.е. при любой громкости будет воспроизводиться любой другой системный звук.)
Однако клиент теперь хочет, чтобы пользователь мог отрегулировать громкость в программе . У меня есть пользовательский интерфейс и обработка этой работы, но мне сложно регулировать громкость воспроизводимых клипов. Прямо сейчас у меня есть забавная установка, которая включает в себя чтение исходного усиления клипа, а затем настройку его вверх или вниз для каждого клипа. Несмотря на то, что это регулирует громкость, похоже, что она не регулирует громкость системы - все звуки намного тише, чем громкость системы.
Итак, мой вопрос на самом деле таков: как вы предлагаете управлять громкостью звука в программе? Все мои исследования не дали ничего значащего, что для меня означает, что это сложно или даже невозможно, но это просто кажется неправильным.
О, подробности: я читаю в WAV как AudioInputStreams и играю их как java.sound.sampled.Clip. Я контролирую усиление с помощью FloatControl.Type.MASTER_GAIN. (FloatControl.Type.VOLUME не поддерживается.) Я застрял с использованием Java 1.4.