analytics

Mostrando entradas con la etiqueta Java entradas audio. Mostrar todas las entradas
Mostrando entradas con la etiqueta Java entradas audio. Mostrar todas las entradas

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;
    }