生物屋さんのためのゼロからのプログラミング

―忘れないための覚書 (たま~に更新)―

JavaでnewAudioClipを使ってサウンドを再生する。

かなり久しぶりの投稿。なので、単純なコードを書いてみた。

何かしらのタスクの終了時に音が出るようにしたいので、とりあえずボタンを押すと音が出るコードを書いてみた。

import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class SoundTest extends JFrame implements ActionListener {

	AudioClip ac = null;


    //ボタンのアクッションの設定
	public void actionPerformed (ActionEvent e) {
		String cmd = e.getActionCommand ();
		if (cmd.equals("push")) {
			ac.play(); //Soundをならす
		}
 	}

	SoundTest () {
		ac = java.applet.Applet.newAudioClip(SoundTest.class.getResource("Kane.wav"));  //音を取り込む
		JButton button = new JButton ("Push");
		button.addActionListener(this);
		button.setActionCommand("push");
		button.setBounds(40, 40, 80, 40);
		JPanel pane = new JPanel ();
		pane.setLayout(null);
		pane.add(button);
		getContentPane().add(pane, BorderLayout.CENTER);
	}

	public static void main(String[] args) {
		SoundTest frame = new SoundTest();
		frame.setTitle ("Sound");
		frame.setBounds(10, 10, 180, 170);
		frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
		frame.setVisible (true);
	}
}

サウンドを再生するコードは下記の部分

   AudioClip ac = null;
   ac = java.applet.Applet.newAudioClip(SoundTest.class.getResource("Kane.wav"));  //音を取り込む

   ac.play();

再生するサウンド(ここでは"Kane.wav")をソースコードと同じディレクトリに入れればOK。

   ac.play();

は一度だけの再生だが、この部分を

   ac.loop();

にすれば、繰り返し再生になる。

newAudioClipでは、midiやwav等のファイルが再生可能らしい。


今回は、サウンドとして“鐘の音”を使ったので、なかなか趣のある感じになった。