jueves, 26 de octubre de 2017
Java dispositivos de audio
Vamos a poner unas sencillas funciones que nos listarán los dispositivos de audio del sistema, para devolvernos o bien una lista de nombres del dispositivo, o bien una lista de mezcladores del sistema, (para poder después operar con ellos como proceda). No hay mucho más que explicar. Listo para un copy/paste y que sea de utilidad.
import java.util.ArrayList;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Line;
import javax.sound.sampled.Mixer;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.TargetDataLine;
public static ArrayList<String> getInputDevices(){
ArrayList<String> retVal = new ArrayList<>();
Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo();
Line.Info targetDLInfo = new Line.Info(TargetDataLine.class);
for (int cnt = 0; cnt < mixerInfo.length; cnt++) {
Mixer currentMixer = AudioSystem.getMixer(mixerInfo[cnt]);
if (currentMixer.isLineSupported(targetDLInfo)) {
retVal.add(mixerInfo[cnt].getName());
}
}
return retVal;
}
public static ArrayList<String> getOutputDevices(){
ArrayList<String> retVal = new ArrayList<>();
Mixer.Info[] mixerInfo;
mixerInfo = AudioSystem.getMixerInfo();
Line.Info sourcetDLInfo = new Line.Info(SourceDataLine.class);
for (int cnt = 0; cnt < mixerInfo.length; cnt++) {
Mixer currentMixer = AudioSystem.getMixer(mixerInfo[cnt]);
if (currentMixer.isLineSupported(sourcetDLInfo)) {
retVal.add(mixerInfo[cnt].getName());
}
}
return retVal;
}
public static ArrayList<Mixer> getInputDevicesMixer(){
ArrayList<Mixer> retVal = new ArrayList<>();
Mixer.Info[] mixerInfo;
mixerInfo = AudioSystem.getMixerInfo();
Line.Info targetDLInfo = new Line.Info(TargetDataLine.class);
for (int cnt = 0; cnt < mixerInfo.length; cnt++) {
Mixer currentMixer = AudioSystem.getMixer(mixerInfo[cnt]);
if (currentMixer.isLineSupported(targetDLInfo)) {
retVal.add(currentMixer);
}
}
return retVal;
}
public static ArrayList<Mixer> getOutputDevicesMixer(){
ArrayList<Mixer> retVal = new ArrayList<>();
Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo();
Line.Info sourcetDLInfo = new Line.Info(SourceDataLine.class);
for (int cnt = 0; cnt < mixerInfo.length; cnt++) {
Mixer currentMixer = AudioSystem.getMixer(mixerInfo[cnt]);
if (currentMixer.isLineSupported(sourcetDLInfo)) {
retVal.add(currentMixer);
}
}
return retVal;
}
No hay comentarios:
Publicar un comentario