Swing/Sound のバックアップの現在との差分(No.18)
TITLE:Wavファイルの演奏
Posted by aterai at 2004-08-16
Wavファイルの演奏
AudioSystemを使って、AudioInputStream、Clip(Line)などを作成取得し、wavファイルを演奏します。- category: swing folder: Sound title: Wavファイルの演奏 tags: [AudioSystem, Sound] author: aterai pubdate: 2004-08-16T00:28:04+09:00 description: AudioSystemを使って、AudioInputStream、Clip(Line)などを作成取得し、wavファイルを演奏します。 image:
概要
AudioSystem
を使って、AudioInputStream
、Clip
(Line
)などを作成取得し、wav
ファイルを演奏します。
- &jnlp;
- &jar;
- &zip;
Screenshot
Advertisement
サンプルコード
サンプルコード
URL url = getClass().getResource("notice1.wav");
#spandel
AudioInputStream sound = AudioSystem.getAudioInputStream(url);
#spanend
#spandel
AudioFormat format = sound.getFormat();
#spanend
#spandel
DataLine.Info di = new DataLine.Info(Clip.class, format);
#spanend
#spandel
Clip clip = (Clip) AudioSystem.getLine(di);
#spanend
#spandel
clip.open(sound);
#spanend
#spandel
clip.start();
#spanend
#spanadd
try (AudioInputStream sound = AudioSystem.getAudioInputStream(url);
#spanend
Clip clip = (Clip) AudioSystem.getLine(new DataLine.Info(Clip.class, sound.getFormat()))) {
SecondaryLoop loop = Toolkit.getDefaultToolkit().getSystemEventQueue().createSecondaryLoop();
clip.addLineListener(e -> {
LineEvent.Type t = e.getType();
if (Objects.equals(t, LineEvent.Type.STOP) || Objects.equals(t, LineEvent.Type.CLOSE)) {
loop.exit();
}
});
clip.open(sound);
clip.start();
loop.enter();
#spanadd
} catch (UnsupportedAudioFileException | IOException | LineUnavailableException ex) {
#spanend
ex.printStackTrace();
Toolkit.getDefaultToolkit().beep();
#spanadd
}
#spanend
View in GitHub: Java, Kotlin解説
WAVE、AU、AIFF、SND形式のサウンドファイルが演奏できるようです。解説
AudioSystem
を使用すれば、WAVE
、AU
、AIFF
、SND
形式のサウンドファイルが演奏可能です。
参考リンク
- "taitai studio" フリーWav素材集
- 上記のサイトのwavファイルをサンプルとして利用しています。
- MIDIファイルの演奏
- Beep音を鳴らす
- AuditoryCuesでイベント音を設定する
-
AudioInputStream
やClip
をAutoCloseable
で自動的に開放するためtry-with-resources
ブロックで作成 - 演奏開始後に
SecondaryLoop
で現在のスレッドをブロックし新しいセカンダリイベントループで演奏を継続 - 演奏終了イベントを
LineListener
で受け取るとセカンダリイベントループを終了して現在のスレッドに戻りclose()
が自動的に実行される
コメント
参考リンク
- AudioSystem (Java Platform SE 8)
-
"taitai studio" フリーWav素材集-
上記のサイトのサイトが移転しているようなので、別の素材を探す予定wav
ファイルをサンプルとして利用しています。
-
- MIDIファイルの演奏
- Beep音を鳴らす
- AuditoryCuesでイベント音を設定する