2011-10-31 11 views
5

Jestem całkiem nowy w java. Potrzebuję kontrolować głośność (zwiększanie/zmniejszanie głośności, wyciszanie) w aplikacji java. Nie mogłem znaleźć sposobu na zrobienie tego. Pracuję nad systemem Linux (dla informacji).Kontrolowanie woluminu w aplikacji java

ja zmęczony ten kod:

kod Java:

Port lineIn; 
FloatControl volCtrl; 
try { 
    mixer = AudioSystem.getMixer(null); 
    lineIn = (Port)mixer.getLine(Port.Info.LINE_IN); 
    lineIn.open(); 
    volCtrl = (FloatControl) lineIn.getControl(

     FloatControl.Type.VOLUME); 
    // Assuming getControl call succeeds, 
    // we now have our LINE_IN VOLUME control. 
} catch (Exception e) { 
    System.out.println("Failed trying to find LINE_IN" 
    + " VOLUME control: exception = " + e); 
} 

ale mam execption

Failed trying to find LINE_IN VOLUME control: exception = java.lang.IllegalArgumentException: Line unsupported: COMPACT_DISC source port 

dzięki za pomoc

Odpowiedz

-1

Nie sądzę, nie ma stała o nazwie VOLUME. Jego MASTER_GAIN. Tak więc powinieneś zrobić

+0

Tam * jest * stała o nazwie "VOLUME", inaczej nie skompilowałaby się. – wchargin

4

Czasami elementy sterujące są zagnieżdżone, co sprawia, że ​​rozwiązanie niezależne od platformy jest trudne. Pisałem klasy narzędzie, które jest używane tak:

Audio.setMasterOutputVolume(0.5f); 

Kod źródłowy jest tutaj: https://github.com/Kunagi/ilarkesto/blob/master/src/main/java/ilarkesto/media/Audio.java

użytkowników stackoverflow można użyć kodu z Audio.java pod względem wtfpl.

+0

dzięki za kod, ale to nie działa dla mnie: S –

+0

Dzięki, więc papka, to działa dobrze przetestowane w ubuntu 14.04 –

+0

Działa dobrze w ubuntu, ale nie w Windows 8 –

Powiązane problemy