/** Creates an AudioInputStream from a sound from an input stream */ public AudioInputStream getAudioInputStream(InputStream is) { try { if (!is.markSupported()) { is = new BufferedInputStream(is); } // open the source stream AudioInputStream source = AudioSystem.getAudioInputStream(is); // convert to playback format return AudioSystem.getAudioInputStream(playbackFormat, source); } catch (UnsupportedAudioFileException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } catch (IllegalArgumentException ex) { ex.printStackTrace(); } return null; }
/* * Return data as a byte array. */ private static byte[] readByte(String filename) { byte[] data = null; AudioInputStream ais = null; try { // try to read from file File file = new File(filename); if (file.exists()) { ais = AudioSystem.getAudioInputStream(file); data = new byte[ais.available()]; ais.read(data); } // try to read from URL else { URL url = StdAudio.class.getResource(filename); ais = AudioSystem.getAudioInputStream(url); data = new byte[ais.available()]; ais.read(data); } } catch (Exception e) { System.out.println(e.getMessage()); throw new RuntimeException("Could not read " + filename); } return data; }
public static Clip loadClip(URL url) { Clip clip = null; String fnm = "" + url; try { AudioInputStream stream = AudioSystem.getAudioInputStream(url); AudioFormat format = stream.getFormat(); if ((format.getEncoding() == AudioFormat.Encoding.ULAW) || (format.getEncoding() == AudioFormat.Encoding.ALAW)) { AudioFormat newFormat = new AudioFormat( AudioFormat.Encoding.PCM_SIGNED, format.getSampleRate(), format.getSampleSizeInBits() * 2, format.getChannels(), format.getFrameSize() * 2, format.getFrameRate(), true); // big endian stream = AudioSystem.getAudioInputStream(newFormat, stream); // System.out.println("Converted Audio format: " + newFormat); format = newFormat; } DataLine.Info info = new DataLine.Info(Clip.class, format); // make sure sound system supports data line if (!AudioSystem.isLineSupported(info)) { System.out.println("Unsupported Clip File: " + fnm); return null; } // get clip line resource clip = (Clip) AudioSystem.getLine(info); clip.open(stream); // open the sound file as a clip stream.close(); // we're done with the input stream // duration (in secs) of the clip double duration = clip.getMicrosecondLength() / 1000000.0; // new if (duration <= 1.0) { System.out.println("WARNING. Duration <= 1 sec : " + duration + " secs"); System.out.println( " The clip in " + fnm + " may not play in J2SE 1.5 -- make it longer"); } // else // System.out.println(fnm + ": Duration: " + duration + " secs"); } // end of try block catch (UnsupportedAudioFileException audioException) { System.out.println("Unsupported audio file: " + fnm); } catch (LineUnavailableException noLineException) { System.out.println("No audio line available for : " + fnm); } catch (IOException ioException) { System.out.println("Could not read: " + fnm); } catch (Exception e) { System.out.println("Problem with " + fnm); } return clip; } // end of loadClip()
/** * This method loads a (.wav) file into a WAVData object. * * @param filename The name of the (.wav) file * @return a WAVData object containing the audio data * @throws UnsupportedAudioFileException if the format of the audio if not supported. * @throws IOException If the file can no be found or some other IO error occurs */ public static WAVData loadFromFile(String filename) throws UnsupportedAudioFileException, IOException { WAVData result = null; File soundFile = new File(filename); AudioInputStream aIn = AudioSystem.getAudioInputStream(soundFile); return readFromStream(aIn); }
public void run() { try { AudioInputStream ais = AudioSystem.getAudioInputStream(soundFile); AudioFormat format = ais.getFormat(); // System.out.println("Format: " + format); DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); SourceDataLine source = (SourceDataLine) AudioSystem.getLine(info); source.open(format); source.start(); int read = 0; byte[] audioData = new byte[16384]; while (read > -1) { read = ais.read(audioData, 0, audioData.length); if (read >= 0) { source.write(audioData, 0, read); } } donePlaying = true; source.drain(); source.close(); } catch (Exception exc) { System.out.println("error: " + exc.getMessage()); exc.printStackTrace(); } }
/*routine to play exploding sound*/ public void explode() { File sound = new File("explosion.wav"); try { Clip clip = AudioSystem.getClip(); clip.open(AudioSystem.getAudioInputStream(sound)); // open the specified clip clip.start(); // play it } catch (Exception e) { System.out.println(e); } }
/*Routine to play theme*/ public void playTheme() { File sound = new File("Death on the Dance Floor_1.wav"); try { Clip clip = AudioSystem.getClip(); clip.open(AudioSystem.getAudioInputStream(sound)); // open the specified clip clip.start(); // start it clip.loop(Clip.LOOP_CONTINUOUSLY); // loop it } catch (Exception e) { System.out.println(e); } }
private void loadAndPlayAudio(String audioResource) { try (AudioInputStream soundStream = AudioSystem.getAudioInputStream(getClass().getResource(audioResource))) { DataLine.Info info = new DataLine.Info(Clip.class, soundStream.getFormat()); Clip clip = (Clip) AudioSystem.getLine(info); clip.open(soundStream); clip.start(); } catch (UnsupportedAudioFileException | IOException | LineUnavailableException ex) { ex.printStackTrace(); } }
public static void main(String[] args) { try { byte[] wav = Base64Coder.base64ToBinary(getWaveLiteral().toCharArray(), 0, WAV_SIZE); InputStream is = new ByteArrayInputStream(wav); AudioFormat fmt = AudioSystem.getAudioFileFormat(is).getFormat(); AudioInputStream sound = AudioSystem.getAudioInputStream(is); DataLine.Info info = new DataLine.Info(Clip.class, fmt); Clip clip = (Clip) AudioSystem.getLine(info); clip.open(sound); clip.start(); Thread.sleep(3000); } catch (Exception ex) { ex.printStackTrace(); } }
private void soundAbspielen(File sound) { if (!läuft) return; try { audioInputStream = AudioSystem.getAudioInputStream(sound); af = audioInputStream.getFormat(); size = (int) (af.getFrameSize() * audioInputStream.getFrameLength()); audio = new byte[size]; info = new DataLine.Info(Clip.class, af, size); audioInputStream.read(audio, 0, size); clip = (Clip) AudioSystem.getLine(info); clip.open(af, audio, 0, size); clip.start(); } catch (Exception e) { e.printStackTrace(); } }
public void addSound(String fileName, boolean loop) { try { input = AudioSystem.getAudioInputStream(new File(fileName)); audio = AudioSystem.getClip(); audio.open(input); clips.add(audio); loops.add(loop); } catch (IOException e) { System.out.println("Audio File Not Found"); } catch (UnsupportedAudioFileException e) { System.out.println("Audio File Type Not Supported, brah"); } catch (LineUnavailableException e) { // TODO Auto-generated catch block System.out.println("Serious audio problem Line Unavailable"); } }
public boolean load(File file) { this.file = file; if (file != null && file.isFile()) { try { errStr = null; audioInputStream = AudioSystem.getAudioInputStream(file); fileName = file.getName(); format = audioInputStream.getFormat(); } catch (Exception ex) { reportStatus(ex.toString()); return false; } } else { reportStatus("Audio file required."); return false; } numChannels = format.getChannels(); sampleRate = (double) format.getSampleRate(); sampleBitSize = format.getSampleSizeInBits(); long frameLength = audioInputStream.getFrameLength(); long milliseconds = (long) ((frameLength * 1000) / audioInputStream.getFormat().getFrameRate()); double audioFileDuration = milliseconds / 1000.0; if (audioFileDuration > MAX_AUDIO_DURATION) duration = MAX_AUDIO_DURATION; else duration = audioFileDuration; frameLength = (int) Math.floor((duration / audioFileDuration) * (double) frameLength); try { audioBytes = new byte[(int) frameLength * format.getFrameSize()]; audioInputStream.read(audioBytes); } catch (Exception ex) { reportStatus(ex.toString()); return false; } getAudioData(); return true; }
private void playAudio(int store) // PRE: store must correspond to one of the existing stores. // POST: Plays the audio associated with store. All files should be located in // the \audio\ file path. { AudioInputStream audio; // The audio stream. String filePath; // The file path to the audio file. File audioFile; // The audio file. Clip audioClip; // The audio clip. switch (store) // create file path for audio associated with store { case -1: filePath = ".\\audio\\click.wav"; break; case 0: filePath = ".\\audio\\weaponSmith.wav"; break; case 1: filePath = ".\\audio\\armorSmith.wav"; break; case 2: filePath = ".\\audio\\accessoryMerchant.wav"; break; default: filePath = ".\\audio\\generalMerchant.wav"; } audioFile = null; try { audioClip = AudioSystem.getClip(); audioFile = new File(filePath); audio = AudioSystem.getAudioInputStream(audioFile); audioClip.open(audio); audioClip.start(); } catch (Exception e) // if there was an error playing the clip { System.err.println("Error playing clip!"); } }
// Constructor to construct each element of the enum with its own sound file. SoundEffect(String soundFileName) { try { // Use URL (instead of File) to read from disk and JAR. URL url = this.getClass().getClassLoader().getResource(soundFileName); // Set up an audio input stream piped from the sound file. AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(url); // Get a clip resource. clip = AudioSystem.getClip(); // Open audio clip and load samples from the audio input stream. clip.open(audioInputStream); } catch (UnsupportedAudioFileException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (LineUnavailableException e) { e.printStackTrace(); } }
public static void Play() { try { // Open an audio input stream. File soundFile = new File("foo.wav"); AudioInputStream audioIn = AudioSystem.getAudioInputStream(soundFile); // Get a sound clip resource. Clip clip = AudioSystem.getClip(); // Open audio clip and load samples from the audio input stream. clip.open(audioIn); clip.start(); } catch (UnsupportedAudioFileException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (LineUnavailableException e) { e.printStackTrace(); } }
// 播放au,aiff,wav音乐流, 这个函数基本完全为帖子上的代码 private synchronized void play() { ByteArrayInputStream aMusicInputStream; AudioFormat format; AudioInputStream musicInputStream; byte[] audioSamples; SourceDataLine line; try { File MusicFile = new File(m_filename); musicInputStream = AudioSystem.getAudioInputStream(MusicFile); // 取得文件的音频输入流 format = musicInputStream.getFormat(); // 取得音频输入流的格式 audioSamples = getAudioSamples(musicInputStream, format); // 取得音频样本 aMusicInputStream = new ByteArrayInputStream(audioSamples); int bufferSize = format.getFrameSize() * Math.round(format.getSampleRate() / 10); byte[] buffer = new byte[bufferSize]; try { DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); line = (SourceDataLine) AudioSystem.getLine(info); line.open(format, bufferSize); } catch (LineUnavailableException e) { e.printStackTrace(); return; } if (!line.isRunning()) { line.start(); } int numBytesRead = 0; while (numBytesRead != -1 && !m_stopped) { numBytesRead = aMusicInputStream.read(buffer, 0, buffer.length); if (numBytesRead != -1) { line.write(buffer, 0, numBytesRead); } } line.drain(); line.close(); } catch (Exception e) { e.printStackTrace(); } }
private static void playWav(String name, boolean loop, double volume) throws FileNotFoundException, IOException, UnsupportedAudioFileException, LineUnavailableException { AudioInputStream ais = AudioSystem.getAudioInputStream(new File(path + name)); Clip clip = AudioSystem.getClip(); clip.open(ais); if (loop) { clip.loop(-1); } ((FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN)) .setValue((float) (Math.log(volume) / Math.log(10.) * 20.)); clip.start(); wavMap.put(name, clip); // // open the sound file as a Java input stream // InputStream in = new FileInputStream(path + name); // // create an audiostream from the inputstream // AudioStream audioStream = new AudioStream(in); // // play the audio clip with the audioplayer class // AudioPlayer.player.start(audioStream); // wavMap.put(name, audioStream); }
/** * This method loads a (.wav) file into a WAVData object. * * @param stream An InputStream for the .WAV file. * @return a WAVData object containing the audio data * @throws UnsupportedAudioFileException if the format of the audio if not supported. * @throws IOException If the file can no be found or some other IO error occurs */ public static WAVData loadFromStream(InputStream stream) throws UnsupportedAudioFileException, IOException { WAVData result = null; AudioInputStream aIn = AudioSystem.getAudioInputStream(stream); return readFromStream(aIn); }