学生向けプログラミング入門

学生向けにプログラミングを解説。Java、C++、Ruby、PHP、データベース

Javaプログラミング入門その29 音声を出力するプログラム

<<前  [TOP]  次>>


音声出力の手段として、java.appletのAudioClipインターフェイスを利用します。
AudioClipインターフェイスを用いることで、複数のオーディオクリップを再生できます。
再生できるオーディオ形式には、wav,mid,aiff,auがあります。


以下のサンプルプログラムを作成してみましょう。


PlayAudio.java 直

/**
*AudioClipを用いた音声再生
*/

import java.applet.*;
import java.net.*;

public class PlayAudio {

	private URL url;
	private AudioClip audioClip;

	public PlayAudio(String fileName) {
		fileLoad(fileName);
	}

	/**指定ファイルでAudioClipを生成*/
	public void fileLoad(String fileName) {

		try {
			url = new URL("file:" +
				System.getProperty("user.dir") + "/" + fileName);
		}

		catch (MalformedURLException ex) {
			System.err.println(ex);
		}

		//AudioClipの生成
		audioClip = Applet.newAudioClip(url);
	}

	/**再生*/
	public void play() {
		audioClip.play();
	}

	/**ループ*/
	public void loop() {
		audioClip.loop();
	}

	/**停止*/
	public void stop() {
		audioClip.stop();
	}

	public static void main(String[] args) {
		PlayAudio test = new PlayAudio("merrygo1.mid");
		test.loop();
	}
}



なお、このプログラムを実行するには「merrygo1.mid」が必要になります。
以下の音楽ファイルを保存してください。
merrygo1.mid 直


再生までの手順は以下のようになります。
1.ファイルの指定(URL形式)
2.audioClipの生成(newAudioClip()メソッド)


生成したオーディオクリップでは、「play()」(再生)、「stop()」(停止)、「loop()」(ループ)の各メソッドを利用することが出来ます。

import java.applet.*;
import java.net.*;
    :
URL url;
try {
    //URL形式でカレントディレクトリからファイルを取得
     url = new URL("file:" + System.getProperty("user.dir") + "/" + fileName);
}
catch (MalformedURLException ex) {
    System.err.println(ex);
}

//AudioClipの生成
AudioClip audioClip = Applet.newAudioClip(url);

//AudioClipの一度だけの再生
audioClip.play();

//AudioClipのループ
audioClip.loop();

//AudioClipの停止
audioClip.stop();



上記AudioClipを利用するために取得するURLを取得する必要があります。
URLはjava.net.URLクラスを用いて生成します。
URLクラスでは複数の方法でインスタンスを生成できますが、今回は対象がファイルなので、「System.getProperty("user.dir")」を利用します。
Propertyメソッドはキー(今回は「user.dir」)の値を取得することが出来ます。


では、サンプルプログラムを実行してみましょう。
実行すると、merrygo1.midが流れます。
終了するまでループし続けますので、終了は「Ctr+C」で行ってください。





<<前  [TOP]  次>>