/** * Copyright 2011 The ForPlay Authors * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package forplay.sample.noise; import java.io.InputStream; import javax.sound.sampled.AudioFileFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; import javax.sound.sampled.LineEvent; import javax.sound.sampled.LineListener; import javax.sound.sampled.Mixer; import javax.sound.sampled.Mixer.Info; import javazoom.jl.decoder.JavaLayerException; import javazoom.jl.player.Player; public class Main { private static final boolean USE_JLAYER = false; public static void main(String[] args) throws InterruptedException { for (AudioFileFormat.Type fileFormat : AudioSystem.getAudioFileTypes()) { System.out.print(fileFormat + ", "); } System.out.println(); System.out.println(); for (Info info : AudioSystem.getMixerInfo()) { System.out.println(info); } System.out.println(); Mixer mixer = AudioSystem.getMixer(null); int maxLines = mixer.getMaxLines(mixer.getLineInfo()); System.out.println("maxlines=" + maxLines); Thread.sleep(100); play("35631__reinsamba__crystal_glass.wav"); play("9874__vixuxx__crow.au"); play("9874__vixuxx__crow.aiff"); play("Bird_Black_Ready1.wav"); play("Bird_Black_Clicked1.mp3"); play("ambient_construction.mp3"); play("28917__junggle__btn107.mp3"); play("forty-two.mp3"); Thread.sleep(1000); System.out.println("Done"); } private static void play(String filename) { try { final InputStream fis = Main.class.getResourceAsStream("/" + filename); if (USE_JLAYER) { Runnable r = new Runnable() { @Override public void run() { Player player; try { player = new Player(fis); player.play(); } catch (JavaLayerException e) { e.printStackTrace(); } } }; new Thread(r).start(); } else { System.out.println(filename); System.out.println(AudioSystem.getAudioFileFormat(fis).getFormat().toString()); AudioInputStream ais = AudioSystem.getAudioInputStream(fis); Clip clip = AudioSystem.getClip(); clip.addLineListener(new LineListener() { @Override public void update(LineEvent evt) { // System.out.println(evt.getType() + ":" + // evt.getLine()); } }); clip.open(ais); // for (int i = 0; i < 20; i++) { clip.start(); // Thread.sleep(100); // clip.stop(); // clip.setFramePosition(0); // } // clip.close(); } } catch (Exception e) { e.printStackTrace(); } } }