Skip to content

Instantly share code, notes, and snippets.

@sunmeat
Created July 12, 2016 11:38
Show Gist options
  • Save sunmeat/0d8226c5e7b2df394ea9087b33b9d962 to your computer and use it in GitHub Desktop.
Save sunmeat/0d8226c5e7b2df394ea9087b33b9d962 to your computer and use it in GitHub Desktop.
sound stream
package files;
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
class Program {
public static void main(String args[]) {
try {
File soundFile = new File("C:\\1\\we are the champions.wav"); // Звуковой файл
// Получаем AudioInputStream
// тут могут полететь IOException и
// UnsupportedAudioFileException
AudioInputStream ais = AudioSystem.getAudioInputStream(soundFile);
// Получаем реализацию интерфейса Clip
// Может выкинуть LineUnavailableException
Clip clip = AudioSystem.getClip();
// Загружаем наш звуковой поток в Clip
// Может выкинуть IOException и LineUnavailableException
clip.open(ais);
clip.setFramePosition(0); // устанавливаем указатель на старт
clip.start(); // Поехали!!!
// Если не запущено других потоков, то стоит подождать, пока клип не
// закончится
// В GUI-приложениях следующие 3 строчки не понадобятся
Thread.sleep(clip.getMicrosecondLength() / 1000);
clip.stop(); // Останавливаем
clip.close(); // Закрываем
} catch (IOException | UnsupportedAudioFileException | LineUnavailableException exc) {
exc.printStackTrace();
} catch (InterruptedException exc) {
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment