tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von vfl_freak
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
479
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Cymatoxa Cymatoxa ist offline Mitglied Silber
    Registriert seit
    Jul 2010
    Beiträge
    67
    Hi, ich möchte mit meinem Programm die Windows-Lautstärke beeinflussen. Das hab ich mit folgendem Code versucht (der ist nicht von mir, sondern aus dem i-Net):
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    
    private void playSound() {
            try {
                AudioInputStream stream = AudioSystem.getAudioInputStream(new File("test.wav"));
                AudioFormat format = stream.getFormat(); 
                if (format.getEncoding() != AudioFormat.Encoding.PCM_SIGNED) { 
                    format = new AudioFormat( AudioFormat.Encoding.PCM_SIGNED, 
                            format.getSampleRate(), 
                            format.getSampleSizeInBits()*2, 
                            format.getChannels(), 
                            format.getFrameSize()*2, 
                            format.getFrameRate(), true);
                    stream = AudioSystem.getAudioInputStream(format, stream); 
                } 
                DataLine.Info info = new DataLine.Info(Clip.class, stream.getFormat(), ((int)stream.getFrameLength()*format.getFrameSize()));
                Clip clip = (Clip) AudioSystem.getLine(info); 
                FloatControl gainControl = (FloatControl)clip.getControl(FloatControl.Type.MASTER_GAIN);
                double gain = .2d;
                float dB = (float)(Math.log(gain)/Math.log(10.0)*20.0); 
                gainControl.setValue(dB);
                BooleanControl muteControl = (BooleanControl)clip.getControl(BooleanControl.Type.MUTE);
                muteControl.setValue(false);
                clip.open(stream); 
                clip.start(); 
            }
            catch (MalformedURLException e) {
                e.printStackTrace();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
            catch (LineUnavailableException e) {
                e.printStackTrace();
            }
            catch (UnsupportedAudioFileException e) {
                e.printStackTrace();
            }
        }
    Leider bekomm ich immer eine Exception:
    Code :
    1
    2
    3
    4
    5
    6
    
    Exception in thread "main" java.lang.IllegalArgumentException: Unsupported control type: Master Gain
            at com.sun.media.sound.AbstractLine.getControl(AbstractLine.java:147)
            at simpleGame.Sound.playSound(Sound.java:49) [Das ist die Zeile FloatControl gainControl = (FloatControl)clip.getControl(FloatControl.Type.MASTER_GAIN);]
            at simpleGame.Sound.<init>(Sound.java:25)
            at simpleGame.Sound.main(Sound.java:76)
    Java Result: 1

    Wär super, wenn ihr mir helfen könntet.
    Grüße, Cymatoxa
     

  2. #2
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    in welcher Zeile kommt der Fehler denn genau
    Sicher, das alles Notwendige korrekt importiert wird

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  3. #3
    Cymatoxa Cymatoxa ist offline Mitglied Silber
    Registriert seit
    Jul 2010
    Beiträge
    67
    Hi,

    Der Fehler ist in Zeile 16.
    Ich hab mich auf NetBeans verlassen, dass alles importiert wurde.
    Hier aber noch meine Importe:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    import java.io.File;
    import java.io.IOException;
    import java.net.MalformedURLException;
    import javax.sound.sampled.AudioFormat;
    import javax.sound.sampled.AudioInputStream;
    import javax.sound.sampled.AudioSystem;
    import javax.sound.sampled.BooleanControl;
    import javax.sound.sampled.Clip;
    import javax.sound.sampled.DataLine;
    import javax.sound.sampled.FloatControl;
    import javax.sound.sampled.LineUnavailableException;
    import javax.sound.sampled.UnsupportedAudioFileException;

    Grüße, Cymatoxa
     

  4. #4
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    ich kenne zwar dieses FloatControl nicht wirklich, aber versuch' mal, auch :
    javax.sound.sampled.FloatControl.Type
    zu importieren ...
    Ggf. kannst in der Zeile, in der der Fehler auftritt, links mit der rechten Maustaste auf das Fehlersymbol klicken und Vorschläge für die Fehlerbehebung bekommen ... möglicherweise wird dabei ja auch der entspr. Import angezeigt

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  5. #5
    Cymatoxa Cymatoxa ist offline Mitglied Silber
    Registriert seit
    Jul 2010
    Beiträge
    67
    Hi,

    danke für deine Bemühnungen, aber am Import scheints nicht zu liegen. Gibt es noch andere Möglichkeiten?

    Gruß,
    Cymatoxa
     

  6. #6
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    Zitat Zitat von Cymatoxa Beitrag anzeigen
    danke für deine Bemühnungen, aber am Import scheints nicht zu liegen. Gibt es noch andere Möglichkeiten?
    Ja - wie ich oben schon schrieb :
    Du kannst in der Zeile, in der der Fehler auftritt, in der linken Spalte mit der rechten Maustaste auf das rote Fehlersymbol klicken und bekommst Hinweise für die Fehlerbehebung ...


    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  7. #7
    Cymatoxa Cymatoxa ist offline Mitglied Silber
    Registriert seit
    Jul 2010
    Beiträge
    67
    Tach,

    richtig, man bekommt dank NetBeans wirklich schöne Fehlerbeschreibungen und Lösungsansätze, wenn man auf ein solches Symbol klickt. Leider erhalte ich aber keine Fehlermeldung von NetBeans. Der Fehler tritt erst beim Ausführen auf (oder Kompilieren?). NetBeans sagt, mein Code wäre in Ordung, deshlb brauche ich ja auch Hilfe

    Grüße,
    Cymatoxa
     

  8. #8
    Peregrin Peregrin ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    80
    Hi

    ich glaube dir fehlt das open beim clip bzw es steht zu weit unten:

    Code :
    1
    2
    3
    
    Clip clip = (Clip) AudioSystem.getLine(info); 
    clip.open(stream);
    FloatControl gainControl = (FloatControl)clip.getControl(FloatControl.Type.MASTER_GAIN);
    Geändert von Peregrin (07.10.10 um 11:54 Uhr)
     

  9. #9
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    Zitat Zitat von Peregrin Beitrag anzeigen
    ich glaube dir fehlt das open beim clip bzw es steht zu weit unten:
    Code :
    1
    2
    3
    
    Clip clip = (Clip) AudioSystem.getLine(info); 
    clip.open(stream);
    FloatControl gainControl = (FloatControl)clip.getControl(FloatControl.Type.MASTER_GAIN);
    richtig, Peregrin hat Recht

    Hier mal ein anderes Beispiel:
    http://www.java-forum.org/java-basic...me-sounds.html

    Gruß
    Klaus
    Cymatoxa bedankt sich. 
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  10. #10
    Cymatoxa Cymatoxa ist offline Mitglied Silber
    Registriert seit
    Jul 2010
    Beiträge
    67
    Vielen Dank

    ich bekomm schon mal keine Exception mehr.
    Leider hat sich an der Lautstärke-Einstellung nichts geändert.
    Kann das an der Soundkarte liegen?

    Grüße,
    Cymatoxa
    Geändert von Cymatoxa (07.10.10 um 13:38 Uhr)
     

Ähnliche Themen

  1. Internet Explorer stumm schalten
    Von cyborg-pc im Forum Microsoft Windows
    Antworten: 10
    Letzter Beitrag: 04.04.06, 09:25
  2. lautstärke ändern bei A premiere pro
    Von emulsion im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 3
    Letzter Beitrag: 10.02.05, 14:57
  3. Lautstärke bei Windows Media Player 9 ändern
    Von Shakie im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 26.12.04, 18:32
  4. Hintergrund Musik stumm schalten
    Von stephenkohnemann im Forum HTML & XHTML
    Antworten: 4
    Letzter Beitrag: 22.09.03, 00:15
  5. Windows-Lautstärke ändern
    Von Nasenbaer im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 04.02.02, 17:51

Stichworte