Volume beim Abspielen von Audio Dateien

Max K.

Mitglied
Hi,

ich habe eine kurze Java Appliction geschrieben, die einfach nur eine .wav-Datei abspielt. Das habe ich soweit problemlos hinbekommen.
Nun möchte ich aber die Lautstärke kontrollieren können und habe recherchiert und versucht das hinzubekommen. Es klappt jedoch irgendwie nicht.

Ich habe schon seit Stunden gesucht, finde jedoch nicht heraus , was das Problem ist.

Hier erstmal main Code:

Java:
public class sl {


	public static void main(String[] args) {

		try{
			File file= new File("meineDatei.wav");
		AudioInputStream stream= AudioSystem.getAudioInputStream(file); 
		AudioFormat format= stream.getFormat();
		byte[] ba= new byte[1024];
		int anzahlGelBytes= 0;
		DataLine.Info info= new DataLine.Info(SourceDataLine.class, format);
		SourceDataLine sourceLine= (SourceDataLine)AudioSystem.getLine(info);
		sourceLine.open();
		sourceLine.start();
		FloatControl control = (FloatControl) sourceLine.getControl(FloatControl.Type.VOLUME);
		control.setValue(100);
		while(true){
			anzahlGelBytes= stream.read(ba,0,1024);
		if(anzahlGelBytes== -1){
			break;}
		sourceLine.write(ba,0,ba.length);
		}
		sourceLine.drain();
		sourceLine.stop();
		sourceLine.close();
		}
		catch (Exception e){
			System.out.print(e);
		}
		
				
	}

}

Ohne die Befehle
Java:
		FloatControl control = (FloatControl) sourceLine.getControl(FloatControl.Type.VOLUME);
		control.setValue(100);
funktioniert es.

Sind die Befehle jedoch vorhanden, bekomme ich folgende Ausgabe der Exception "e":

Code:
java.lang.IllegalArgumentException: Unsupported control type: Volume



Außerdem habe ich das Problem, dass ich (auch ohne diese Befehle) nur manche .wav-Dateien abspielen kann, andere jedoch nicht.

Weiß vielleicht irgendjemand Rat?


Danke schonmal im Voraus!


Max K.
 
Guten Abend,

schonmal so versucht?

Java:
(FloatControl) sourceLine.getControl(FloatControl.Type..MASTER_GAIN);


Max K. hat gesagt.:
Außerdem habe ich das Problem, dass ich (auch ohne diese Befehle) nur manche .wav-Dateien abspielen kann, andere jedoch nicht.

Hast du mal kontrolliert ob die wav die gehen/nicht gehen unterschiedliche Eigenschaften haben?
Also z.B. Samplingrate usw

Grüße
 
Hallo,

erstmal danke für die Antwort.

Ich habe es auch schon mit MASTER_GAIN versucht, bekomme jedoch den gleichen Fehler. Da steht dann einfach "Unsupported control type: MASTER_GAIN".

Außerdem habe ich es auch schon über einen AudioClip versucht, bekomme dort jedoch den selben Fehler. Kann das irgendwie an den Java Einstellungen oder am Betriebssystem (Windows XP und Vista) liegen?


Das zweite Problem habe ich inzwischen selbst gelöst, es war wohl einfach eine beschädigte Datei.
 

Zurück
Oben