if(SourceDataLine.class.isAssignableFrom(info.getLineClass())) { SourceDataLine.Info info2 = (SourceDataLine.Info) info; System.out.println(info2);
public static List<String> getDeviceNames() { List<String> result = new ArrayList<>(); try { for (Mixer.Info info : AudioSystem.getMixerInfo()) { for (Line.Info info2 : AudioSystem.getMixer(info).getSourceLineInfo()) { if (info2.getLineClass() == Clip.class) { result.add(info.getName()); } } } } catch (Exception ex) { LOGGER.warning("Error getting list of sound devices: "+ex); } return result; }
@Override public synchronized Collection<? extends AudioOutput> getOutputs() { final Line.Info [] lines = AudioSystem.getMixer(info).getSourceLineInfo(); final Collection<AudioOutput> result = new ArrayList<AudioOutput>(); for(Line.Info info:lines){ if(info instanceof SourceDataLine.Info && info.getLineClass() != Clip.class){ final SourceDataLine.Info sdlInfo = (SourceDataLine.Info)info; result.add(new JavaSoundOutput(sdlInfo, this)); } }//end for(lines) return result; } @Override
Class lineClass = info.getLineClass(); DataLine.Info dataLineInfo = null; Port.Info portInfo = null;
Class lineClass = info.getLineClass(); DataLine.Info dataLineInfo = null; Port.Info portInfo = null;
@Override public Line getLine(Line.Info info) throws LineUnavailableException { //check info and get the right line and return if(info.getLineClass().equals(SourceDataLine.class)) { //System.out.println("YMixer returning (Line)new YSourceDataLine(info);"); return (Line)new YSourceDataLine(info); } // //check info and get the right line and return if(info.getLineClass().equals(TargetDataLine.class)) { //System.out.println("YMixer returning (Line)new YTargetDataLine(info);"); return (Line)new YTargetDataLine(info); } // //check info and get the right line and return if(info.getLineClass().equals(Clip.class)) { //System.out.println("YMixer returning (Line)new YClip(info);"); return (Line)new YClip(info); } // return (Line)new YLine(info); }
private ArrayList<AudioMixer> getCompatibleDevices(){ devices=new ArrayList<AudioMixer>(); //list the available mixers Mixer.Info mixers[]=AudioSystem.getMixerInfo(); int i; //iterate the mixers and display TargetLines for (i=0;i<mixers.length;i++){ Mixer m = AudioSystem.getMixer(mixers[i]); Line.Info l[]=m.getTargetLineInfo(); if(l.length>0){ int x; for (x=0;x<l.length;x++){ if (l[0].getLineClass().getName().equals("javax.sound.sampled.TargetDataLine")){ AudioMixer mc=new AudioMixer(this.theApp,mixers[i].getName(),m,l[x]); devices.add(mc); } } } } return devices; }
public boolean isLineSupported(Line.Info info) { if (TDebug.TraceMixer) { TDebug.out("TMixer.isLineSupported(): info to test: " + info); } Class lineClass = info.getLineClass(); if (lineClass.equals(SourceDataLine.class)) { return isLineSupportedImpl(info, m_supportedSourceLineInfos); } else if (lineClass.equals(TargetDataLine.class)) { return isLineSupportedImpl(info, m_supportedTargetLineInfos); } else if (lineClass.equals(Port.class)) { return isLineSupportedImpl(info, m_supportedSourceLineInfos) || isLineSupportedImpl(info, m_supportedTargetLineInfos); } else { return false; } }
public boolean isLineSupported(Line.Info info) { if (TDebug.TraceMixer) { TDebug.out("TMixer.isLineSupported(): info to test: " + info); } Class lineClass = info.getLineClass(); if (lineClass.equals(SourceDataLine.class)) { return isLineSupportedImpl(info, m_supportedSourceLineInfos); } else if (lineClass.equals(TargetDataLine.class)) { return isLineSupportedImpl(info, m_supportedTargetLineInfos); } else if (lineClass.equals(Port.class)) { return isLineSupportedImpl(info, m_supportedSourceLineInfos) || isLineSupportedImpl(info, m_supportedTargetLineInfos); } else { return false; } }
@Override public Line getLine(Line.Info info) throws LineUnavailableException { //check info and get the right line and return if(info.getLineClass().equals(SourceDataLine.class)) { //System.out.println("YMixer returning (Line)new YSourceDataLine(info);"); return (Line)new YSourceDataLine(info); } // //check info and get the right line and return if(info.getLineClass().equals(TargetDataLine.class)) { //System.out.println("YMixer returning (Line)new YTargetDataLine(info);"); return (Line)new YTargetDataLine(info); } // //check info and get the right line and return if(info.getLineClass().equals(Clip.class)) { //System.out.println("YMixer returning (Line)new YClip(info);"); return (Line)new YClip(info); } // return (Line)new YLine(info); }