/** * List Mixers. Only Mixers that support either TargetDataLines or SourceDataLines are listed, depending on the value of * bPlayback. * * @param bPlayback * bPlayback */ public static void listMixersAndExit(boolean bPlayback) { out("Available Mixers:"); Mixer.Info[] aInfos = AudioSystem.getMixerInfo(); for (int i = 0; i < aInfos.length; i++) { Mixer mixer = AudioSystem.getMixer(aInfos[i]); Line.Info lineInfo = new Line.Info(bPlayback ? SourceDataLine.class : TargetDataLine.class); if (mixer.isLineSupported(lineInfo)) { out(aInfos[i].getName()); } } if (aInfos.length == 0) { out("[No mixers available]"); } System.exit(0); }
data[kk][1] = controls[index]; md = new MediaData(getShortLineName(line.getLineInfo().toString()), columnNames, data); soundSampledMixerNode.add(new DefaultMutableTreeNode(md));
data[kk][1] = controls[index]; md = new MediaData(getShortLineName(line.getLineInfo().toString()), columnNames, data); soundSampledMixerNode.add(new DefaultMutableTreeNode(md));
new Line.Info(Clip.class)); audioLineClip.open(inputStream); audioLineClip.setFramePosition(0);
if (info.toString().contains("SPEAKER")) { Line line = mixer.getLine(info); try {
Class lineClass = info.getLineClass(); DataLine.Info dataLineInfo = null; Port.Info portInfo = null;
Class lineClass = info.getLineClass(); DataLine.Info dataLineInfo = null; Port.Info portInfo = null;
j.add(new JLabel(lineinfo.toString())); j.add(pb); j.pack();
int value = (int) (control.getValue()*100); pb.setValue(value); j.add(new JLabel(lineinfo.toString())); j.add(pb); j.pack();
Line.Info linfo = new Line.Info(Clip.class); Line line = AudioSystem.getLine(linfo); clip = (Clip) line;
AudioFormat format = new AudioFormat(22050, 16, 2, true, false); Line.Info info = new Line.Info(SourceDataLine.class);
System.out.println(" " + lineInfo.toString());
if(SourceDataLine.class.isAssignableFrom(info.getLineClass())) { SourceDataLine.Info info2 = (SourceDataLine.Info) info; System.out.println(info2); System.out.println(info.toString());
Mixer mixer = AudioSystem.getMixer(null); sdl = (SourceDataLine) mixer.getLine(new Line.Info(SourceDataLine.class)); sdl.open(new AudioFormat(rate, 16, 2, true, false), bufferSize * 2 * 2 * 2 * 2 * 2); soundBuffer.order(ByteOrder.LITTLE_ENDIAN);
System.out.println(" " + lineInfo.toString());
+ "\n" + "TargetDataLine format is " + line.getFormat().toString() + "\n" + "TargetDataLine info is " + line.getLineInfo().toString());
@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; }
import java.io.File; import javax.sound.sampled.*; public void play(File file) { try { final Clip clip = (Clip)AudioSystem.getLine(new Line.Info(Clip.class)); clip.addLineListener(new LineListener() { @Override public void update(LineEvent event) { if (event.getType() == LineEvent.Type.STOP) clip.close(); } }); clip.open(AudioSystem.getAudioInputStream(file)); clip.start(); } catch (Exception exc) { exc.printStackTrace(System.out); } }