Mixer.Info[] mixerInfos = AudioSystem.getMixerInfo(); for (Mixer.Info info: mixerInfos){ Mixer m = AudioSystem.getMixer(info); Line.Info[] lineInfos = m.getSourceLineInfo(); for (Line.Info lineInfo:lineInfos){ System.out.println (info.getName()+"---"+lineInfo); Line line = m.getLine(lineInfo); System.out.println("\t-----"+line); } lineInfos = m.getTargetLineInfo(); for (Line.Info lineInfo:lineInfos){ System.out.println (m+"---"+lineInfo); Line line = m.getLine(lineInfo); System.out.println("\t-----"+line); } }
/** * Try to get a line for output to the speaker. The line is not yet opened with a specific format. * * @return a line object, or null if the line could not be created. */ public SourceDataLine getSpeakerOutputLine() { Object audioDescriptor = cbSpeakerOutput.getSelectedItem(); assert audioDescriptor instanceof Mixer.Info; Mixer.Info mixerInfo = (Mixer.Info) audioDescriptor; Mixer mixer = AudioSystem.getMixer(mixerInfo); Line.Info[] lineInfos = mixer.getSourceLineInfo(); assert lineInfos.length > 0 : "Strange, there are no more source lines for mixer: " + mixer; Line.Info lineInfo = lineInfos[0]; SourceDataLine line = null; try { line = (SourceDataLine) mixer.getLine(lineInfo); } catch (LineUnavailableException e) { e.printStackTrace(); } return line; }
/** * Try to get a line for output to the expert. The line is not yet opened with a specific format. * * @return a line object, or null if the line could not be created. */ public SourceDataLine getExpertOutputLine() { Object audioDescriptor = cbExpertOutput.getSelectedItem(); assert audioDescriptor instanceof Mixer.Info; Mixer.Info mixerInfo = (Mixer.Info) audioDescriptor; Mixer mixer = AudioSystem.getMixer(mixerInfo); Line.Info[] lineInfos = mixer.getSourceLineInfo(); assert lineInfos.length > 0 : "Strange, there are no more source lines for mixer: " + mixer; Line.Info lineInfo = lineInfos[0]; SourceDataLine line = null; try { line = (SourceDataLine) mixer.getLine(lineInfo); } catch (LineUnavailableException e) { e.printStackTrace(); } return line; }
private static void dumpMixers() { Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo(); for (int i = 0; i < mixerInfo.length; i++) { Mixer mixer = AudioSystem.getMixer(mixerInfo[i]); System.out.println("Mixer[" + i + "]: \"" + mixerInfo[i].getName() + '\"'); System.out.println(" Description: " + mixerInfo[i].getDescription()); System.out.println(" SourceLineInfo (e.g., speakers):"); dumpLineInfo(" ", mixer.getSourceLineInfo()); System.out.println(" TargetLineInfo (e.g., microphones):"); dumpLineInfo(" ", mixer.getTargetLineInfo()); } }
Mixer mixer = AudioSystem.getMixer(mixerInfos[i]); boolean hasSourceLine = false; Line.Info[] lines = mixer.getSourceLineInfo(); for (int j = 0; j < lines.length; j++) { if (lines[j] instanceof DataLine.Info) {
data = mergeArrays( "Source", mixer.getSourceLineInfo(), "Target", mixer.getTargetLineInfo() ); Line.Info[] source = mixer.getSourceLineInfo(); Line.Info[] target = mixer.getTargetLineInfo(); Line[] all = new Line[source.length + target.length];
System.out.println("mixer name: " + mixerInfo.getName()); Mixer mixer = AudioSystem.getMixer(mixerInfo); Line.Info[] lineInfos = mixer.getSourceLineInfo(); for (Line.Info lineInfo : lineInfos) { System.out.println(" Line.Info: " + lineInfo);
Mixer.Info[] mi = AudioSystem.getMixerInfo(); for (Mixer.Info info : mi) { System.out.println("info: " + info); Mixer m = AudioSystem.getMixer(info); System.out.println("mixer " + m); Line.Info[] sl = m.getSourceLineInfo(); for (Line.Info info2 : sl) { System.out.println(" info: " + info2); Line line = AudioSystem.getLine(info2); if (line instanceof SourceDataLine) { SourceDataLine source = (SourceDataLine) line; DataLine.Info i = (DataLine.Info) source.getLineInfo(); for (AudioFormat format : i.getFormats()) { System.out.println(" format: " + format); } } } }
private JComboBox getMixerComboBox() { if (mixerComboBox == null) { Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo(); Line.Info clipLineInfo = new Line.Info(Clip.class); Vector<Mixer.Info> mixers = new Vector<Mixer.Info>(); for (Mixer.Info mi : mixerInfo) { if (AudioSystem.getMixer(mi).getSourceLineInfo(clipLineInfo).length > 0) { mixers.add(mi); } } mixerComboBox = new JComboBox(mixers); mixerComboBox.setRenderer(new MixerInfoCellRenderer()); mixerComboBox.addActionListener(eventHandler); } return mixerComboBox; }
@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
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; }
/** * Returns a Java sound line for the given device name. Use * {@link AudioDevice#deviceName} as input to this method. Use * {@link AudioUtils#getDevices()} to get an {@link AudioDevice} object. * * @param deviceName The device name. * @param af The format * @return A Java sound line. * @throws LineUnavailableException */ static public SourceDataLine getJavaOutputLine( final String deviceName, final AudioFormat af ) throws LineUnavailableException { final Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo(); for( final Mixer.Info info: mixerInfo ) { if( info.getName().equals( deviceName ) ) { final Mixer m = AudioSystem.getMixer(info); if( m.getSourceLineInfo().length > 0 ) return (SourceDataLine)AudioSystem.getLine( m.getSourceLineInfo()[0] ); } } return null; }
/** * Returns a Java sound line for the given device name. Use * {@link AudioDevice#deviceName} as input to this method. Use * {@link AudioUtils#getDevices()} to get an {@link AudioDevice} object. * * @param deviceName The device name. * @param af The format * @return A Java sound line. * @throws LineUnavailableException */ static public SourceDataLine getJavaOutputLine( final String deviceName, final AudioFormat af ) throws LineUnavailableException { final Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo(); for( final Mixer.Info info: mixerInfo ) { if( info.getName().equals( deviceName ) ) { final Mixer m = AudioSystem.getMixer(info); if( m.getSourceLineInfo().length > 0 ) return (SourceDataLine)AudioSystem.getLine( m.getSourceLineInfo()[0] ); } } return null; }
for(Line.Info info : mixer.getSourceLineInfo()) { if(SourceDataLine.class.isAssignableFrom(info.getLineClass())) { SourceDataLine.Info info2 = (SourceDataLine.Info) info;
private void mixerComboBoxActionPerformed() { Mixer mixer = AudioSystem.getMixer((Mixer.Info) mixerComboBox.getSelectedItem()); Line.Info lineInfo = mixer.getSourceLineInfo(new Line.Info(Clip.class))[0]; boolean volumeSupported; boolean panSupported; try { Line line = mixer.getLine(lineInfo); volumeSupported = line.isControlSupported(FloatControl.Type.MASTER_GAIN); panSupported = line.isControlSupported(FloatControl.Type.PAN); } catch (LineUnavailableException e) { volumeSupported = false; panSupported = false; } enableMixerVolumeCheckBox.setEnabled(volumeSupported); enableMixerPanCheckBox.setEnabled(panSupported); }
private static void dumpMixers() { Mixer.Info[] mixerInfo = AudioSystem.getMixerInfo(); for (int i = 0; i < mixerInfo.length; i++) { Mixer mixer = AudioSystem.getMixer(mixerInfo[i]); System.out.println("Mixer[" + i + "]: \"" + mixerInfo[i].getName() + '\"'); System.out.println(" Description: " + mixerInfo[i].getDescription()); System.out.println(" SourceLineInfo (e.g., speakers):"); dumpLineInfo(" ", mixer.getSourceLineInfo()); System.out.println(" TargetLineInfo (e.g., microphones):"); dumpLineInfo(" ", mixer.getTargetLineInfo()); } }
Line.Info[] lines = mixer.getSourceLineInfo();
Line.Info [] sourceLineInfo = mixer.getSourceLineInfo(); for (Line.Info info : sourceLineInfo) showLineInfo(info);
Line.Info [] sourceLineInfo = mixer.getSourceLineInfo(); for (Line.Info info : sourceLineInfo)
try (TargetDataLine in1Line = (TargetDataLine) in1Mixer.getLine(in1Mixer.getTargetLineInfo()[0]); TargetDataLine in2Line = (TargetDataLine) in2Mixer.getLine(in2Mixer.getTargetLineInfo()[0]); SourceDataLine outLine = (SourceDataLine) outMixer.getLine(outMixer.getSourceLineInfo()[0])) {