Lautstärke in JavaSound

Nick0110

Grünschnabel
Hi,
möchte die Ausgabeläutstärke in meiner Java Applikation mit einem JSlider bestimmen.
Verwende Java.SoundSampled.
Wie kann ich die Ausgabelautstärke bestimmen, auch wenn gerade nichts ausgegeben wird, also keine line zur verfügung steht?
Jemand ne Ahnung?
Danke!
 
Hallo,

du brauchst eine FloatControl, die du von deiner SourceDataLine bekommst:
Code:
SourceDataLine line;
FloatControl control = (FloatControl) line.getControl(FloatControl.Type.VOLUME);
control.setValue(...);
getMinimum() und getMaximum() kannst du evtl. für den Slider benutzen.
 
Aber die sourceDataLine habe ich doch erst wenn sound in der Line vorhanden ist.
Kann ich nicht schon im vornherein bestimmen dass wenn sound kommt, dass dieser dann mit einer bestimmten Lautstärke ausgegeben wird
 
Ich versteh dich grad nicht so ganz. Wenn du was über die SourceDataLine abspielen willst, kannst du ja erst die Line erstellen und die Lautstärke setzen und danach die Daten schreiben.
Das ganze geht glaub ich auch bei einer TargetDataLine, da kannst du auch erst die Lautstärke einstellen und dann Daten lesen.
 
Also ich habe eine MainFrame, mit einem JSlider der die Lautstärke bestimmen soll. Mein Player wird in einem externen Thread gestartet. Sprich in meiner MainFrame habe ich keine line die ich ansprechen könnte. Die befindet sich in meinem Thread. Vielleicht habe ich einen Denkfehler, aber ich komme nicht drauf.
Danke!
 
Ich denke, ganz ohne eine Line wird's nicht gehen. Du könntest die Line aus dem externen Thread an den MainFrame übergeben, z.b. mit einer set-Methode im MainFrame.
Oder du erstellst im MainFrame eine andere Line und setzt da die Lautstärke. Dann brauchst du aber FloatControl.Type.MASTER_GAIN, weil VOLUME nur für eine Line gilt.
 
wenn ich in meinem Mainframe eine andere line erstelle, und dann im Thread wieder eine neue. Wird die Lautstärke einstellung dann übernommen im Thread?
Danke und Grüße
 
Zurück