sonido reproducir poner para insertar como codigo boton audios agregar java audio

reproducir - poner audios en java



Control de volumen de audio(aumento o disminuciĆ³n) en Java (3)

¿Cómo puedo aumentar el volumen de una transmisión de audio wav saliente usando Java? Tengo problemas con varios motores Java TTS y el volumen de salida de la voz sintetizada. ¿Hay una llamada a la API o un doo-hickey.jar que pueda usar para aumentar el volumen?


Puedes ajustar el volumen usando un GainControl, intenta algo como esto después de haber abierto la línea

FloatControl volume= (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);


Si está utilizando la API de Java Sound, puede configurar el volumen con el control MASTER_GAIN .

import javax.sound.sampled.*; AudioInputStream audioInputStream = AudioSystem.getAudioInputStream( new File("some_file.wav")); Clip clip = AudioSystem.getClip(); clip.open(audioInputStream); FloatControl gainControl = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN); gainControl.setValue(-10.0f); // Reduce volume by 10 decibels. clip.start();


public final class VolumeControl { private VolumeControl(){} private static LinkedList<Line> speakers = new LinkedList<Line>(); private final static void findSpeakers() { Mixer.Info[] mixers = AudioSystem.getMixerInfo(); for (Mixer.Info mixerInfo : mixers) { if(!mixerInfo.getName().equals("Java Sound Audio Engine")) continue; Mixer mixer = AudioSystem.getMixer(mixerInfo); Line.Info[] lines = mixer.getSourceLineInfo(); for (Line.Info info : lines) { try { Line line = mixer.getLine(info); speakers.add(line); } catch (LineUnavailableException e) { e.printStackTrace(); } catch (IllegalArgumentException iaEx) { } } } } static { findSpeakers(); } public static void setVolume(float level) { System.out.println("setting volume to "+level); for(Line line : speakers) { try { line.open(); FloatControl control = (FloatControl)line.getControl(FloatControl.Type.MASTER_GAIN); control.setValue(limit(control,level)); } catch (LineUnavailableException e) { continue; } catch(java.lang.IllegalArgumentException e) { continue; } } } private static float limit(FloatControl control,float level) { return Math.min(control.getMaximum(), Math.max(control.getMinimum(), level)); } }