[サウンド]
Javaアプレットで音を鳴らすにはAudioClipクラスをインポートする必要がある。
そのAudioClipクラスには以下のようなメソッドがある。

play()
音を再生する。

loop()
音を繰り返し再生する。

stop()
再生中の音を停止させる。

[Javaで使える音声ファイルの形式]
基本的にはauという形式の音声ファイルを使うが、
Java2からはwave形式やmidi形式も使えるようになったらしい。

[サンプルプログラム]
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.Button;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Sample05 extends Applet{
	Button xb1, xb2, xb3; // ボタン
	AudioClip xsound; // 音声ファイル

	public void init(){
		xsound = getAudioClip(getCodeBase(), "sound.au");

		xb1 = new Button("再生");
		add(xb1);
		xb1.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent ae){
				xsound.play();
			}
		});

		xb2 = new Button("ループ");
		add(xb2);
		xb2.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent ae){
				xsound.loop();
			}
		});

		xb3 = new Button("停止");
		add(xb3);
		xb3.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent ae){
				xsound.stop();
			}
		});
	}
	// 他のページに移動する時、音楽を強制的に停止させる
	public void stop(){
		xsound.stop();
	}
}

このプログラムの最初でAudiClipとButtonを3つ用意している。
そしてgetAudioClipでgetCodeBase()で取得したURLにあるsound.auファイルを
xsoundに返している。次にボタンを作成しaddでそのボタンをアプレットに登録する。
addActionListenerはそのボタンが押されるのを監視し、押されたら
actionPerformedにActionEventを渡し、それぞれplay(),loop(),stop()メソッドを
実行している。

[実行結果]
再生すると猫の泣き声っぽい音がする。





(注)サンプルプログラムで使用したsound.auファイルは
「パケットリラックス」のフリーの音の素材を加工したものです。
無料かつ自由に使わせていただけることに感謝します。

「パケットリラックス」
http://www2.odn.ne.jp/~relax/

戻る