Ola… mais uma vez…
bom vamos direto ao ponto.
eu consegui um modo de alterar o volume do audio da minha aplicação mais eu estou com um bendito problema de variavel
bom o codigo para alterar o volume e o seguinte:
public void setVolume(double vol) throws Exception{
Mixer.Info[] infos = AudioSystem.getMixerInfo();
for (Mixer.Info info: infos) {
Mixer mixer = AudioSystem.getMixer(info);
if (mixer.isLineSupported(Port.Info.SPEAKER)) {
Port port = (Port)mixer.getLine(Port.Info.SPEAKER);
port.open();
if (port.isControlSupported(FloatControl.Type.VOLUME)) {
FloatControl volume = (FloatControl)port.getControl(FloatControl.Type.VOLUME);
volume.setValue((float) vol);
System.out.println(vol); // esse valo vem do meu db mysql que ja e double tudo sertinho o valor q esta la e 0.09
System.out.println((float) vol); // aqui o resultado ainda e o mesmo 0.09
System.out.println(volume.getValue()); // aqui acontece a magira e fira essa coisa de 0.89xxxxx sendo q tinha q ser o 0.09
}
port.close();
}
}
}
** olhem o comentario
bom eu altero esse volume em execução com o seguinte codigo:
public void volumeUP() throws Exception{
double vol = dadosDB.recuperaVol(); // aqui ele busca na minha db o valor salvo la ex. double: 0.09
DecimalFormat format = new DecimalFormat("0.00");
String string = format.format(vol);
String[] part = string.split("[,]");
vol = Double.parseDouble(part[0]+"."+part[1]);
vol+= 0.01; // aqui e para somar o valor e acrescentar o volume que vai de 0.01 ate 1.00
if(vol >= 1.00)
vol = 1.00;
setVolume(vol);
}
se alguem poder dar uma força… como meu conhecimento em java ainda e limitado eu acho q o problema esta no float e eu nao sei como formatar ele
