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

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

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

<<前  [TOP]  次>>


>>注意<<
JDK9からJavaアプレットは非推奨となっており、このページ通りにプログラムを作成しても動作しません。


音声出力の手段として、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」が必要になります。
何でも良いのでmidファイルを用意して名前を「merrygo1.mid」として「programming」フォルダに保存してください。


再生までの手順は以下のようになります。
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]  次>>