基本的な方法
Javaで音を鳴らすための基本的な方法です。音の再生、停止、ループくらいはできます。もっと細かく制御したい場合はJava Sound APIを使う必要があります。
Java Appletで音を鳴らす
もっとも古い方法。play()を呼び出すたびにファイルをロードして再生します。
import java.applet.Applet; import java.awt.Graphics; public class SimpleSoundApplet extends Applet { public void init() { play(getCodeBase(), "elise.mid"); } public void paint(Graphics g) { g.drawString("Appletで音を鳴らす基本", 16, 16); } }
JDK 1.2では、WAV、AU、AIFF、MIDI、RMF形式のファイルに対応している。8bitまたは16bit、モノラルまたはステレオ、サンプルレートは8000〜48000Hzのファイルが再生可。
AudioClipを使う
Java AppletでAudioClipを使って鳴らします。loop()で再生がループします。ページを移動するとstop()が呼ばれて演奏が停止します。昔のアプレットはよくこういう風に書いてました。
import java.applet.AudioClip; import java.awt.Graphics; import javax.swing.JApplet; public class AudioClipSample extends JApplet { private AudioClip clip; public void init() { clip = getAudioClip(getCodeBase(), "elise.mid"); } public void paint(Graphics g) { g.drawString("AudioClipを使う", 16, 16); } public void start() { clip.loop(); } public void stop() { clip.stop(); } }
アプリケーションでAudioClipを使う
アプリケーションでAudioClipを使うにはAppletクラスのnewAudioClip()を使います。newAudioClip()はクラスメソッドでAppletオブジェクトがいらないためアプリケーションでも使えます。WAVEの再生(2004/10/3)を参照。
import java.applet.Applet; import java.applet.AudioClip; import javax.swing.JFrame; public class AudioClipApp extends JFrame { public AudioClipApp(String filename) { setTitle("AudioClipの再生"); AudioClip clip = Applet.newAudioClip( getClass().getResource(filename)); clip.play(); } public static void main(String[] args) { AudioClipApp app = new AudioClipApp("elise.mid"); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); app.setVisible(true); } }