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等のファイルが再生可能らしい。
今回は、サウンドとして“鐘の音”を使ったので、なかなか趣のある感じになった。