/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package testaudio; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Stream; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.DataLine; import javax.sound.sampled.Line; import javax.sound.sampled.Mixer; /** * * @author Konstantin */ public class TestAudio { /** * @param args the command line arguments */ public static void main(String[] args) { List laudioFormat = new ArrayList(); try { Mixer.Info [] mixers = AudioSystem.getMixerInfo(); for(int i = 0 ; i< mixers.length; i ++) { System.out.println((i+1)+". " + mixers[i].getName() + " --> " + mixers[i].getDescription() ); Line.Info [] sourceLines = AudioSystem.getMixer(mixers[i]).getSourceLineInfo(); System.out.println("PRINT - SUPPORTED - AUDIO - FORMATS"); Stream.of(sourceLines).forEach(line -> showLineInfoFormats(line)); Stream.of(sourceLines).forEach(line -> laudioFormat.addAll(Arrays.asList(showLineInfoFormats(line)))); System.out.println("----------------------------------------"); System.out.println("\tSource Lines:" ); for(int j = 0; j< sourceLines.length; j++) { System.out.println("\t" + (j+1) + ". " + sourceLines[j].toString() ); } System.out.println(); Line.Info [] targetLines = AudioSystem.getMixer(mixers[i]).getTargetLineInfo(); System.out.println("\tTarget Lines:" ); for(int j = 0; j< targetLines.length; j++) { System.out.println("\t" + (j+1) + ". " + targetLines[j].toString() ); } System.out.println("\n" ); } } catch(Exception e) { e.printStackTrace(); } return; // if(args.length <= 0) // { // CaptureAudio cap = new CaptureAudio(); // cap.start(); // return; // } // // float a = Float.valueOf(args[0]); // int b = Integer.valueOf(args[1]); // int c = Integer.valueOf(args[2]); // Boolean d = Boolean.valueOf(args[3]); // // CaptureAudio cap = new CaptureAudio(a,b,c,d); // // cap.start(); } static AudioFormat[] showLineInfoFormats(final Line.Info lineInfo) { if (lineInfo instanceof DataLine.Info) { final DataLine.Info dataLineInfo = (DataLine.Info) lineInfo; Arrays.stream(dataLineInfo.getFormats()) .forEach(format -> System.out.println(" " + format.toString())); return dataLineInfo.getFormats(); } return new AudioFormat[0]; } }