Существует Port
, который дает вам доступ к микшеру компьютера, но приглушение звука отключит весь звук компьютера. Так что это, вероятно, не очень хороший вариант.
Кроме этого, я полагаю, что вам требуется экземпляр класса Clip или SourceDataLine, который в данный момент воспроизводится. Скорее всего, однако, апплет использует для воспроизведения класс AudioClip, который может использовать или не использовать клип / SourceDataLine внутри себя ...
В любом случае, вы можете попробовать следующий подход, он должен работать на большинстве реализаций Java Sound:
от AudioSystem, получите все микшеры
Mixer.Info[] infos = AudioSystem.getMixerInfo();
for (Mixer.Info info: infos) {
Mixer mixer = AudioSystem.getMixer(info);
}
убедитесь, что импортировали javax.sound.sampled. *
- из каждого микшера, получить строки воспроизведения с помощью
getSourceLines()
для каждой возвращаемой строки, попробуйте получить элемент управления Mute:
BooleanControl bc = (BooleanControl) line.getControl(BooleanControl.Type.MUTE)
if (bc != null) {
bc.setValue(true); // true to mute the line, false to unmute
}
Обратите внимание, что нет гарантии, что вы получите строки, и нет гарантии, что реализация Java Sound предоставляет элемент управления MUTE для данной строки.