音频文件有多种格式。Java程序能够播放WAV,AIFF,MIDI,AU和RMF格式的声音文件。
要在Java中播放音频文件,应该先为声音文件创建一个音频剪辑对象(audio clip object)。一旦创建了音频剪辑,不需要重新加载文件就可以重复播放声音。为了创建一个音频剪辑,使用java.applet.Applet类中的静态方法newAudioClip();
AudioClip audioClip = Applet.newAudioClip(ur1);
声音原本是只能在Java applet中播放的,因为这个原因,AudioClip接口位于java.applet包中,从JDK1.2开始,音频就能在任意一个程序中播放。
例如,下面的语句为类目录下的声音文件beep.au创建一个音频剪辑AudioClip对象:
Class metaObject = this.getClass();
URL ur1 = metaObject.getResource("beep.au");
AudioClip audioClip = Applet.newAudio(ur1);
使用java.applet.AudioClip中的play(),loop()和stop()方法可以操控音频剪辑中的声音,+play()意味着开始播放这个音频剪辑,每次调用这个方法时,这个音频都会从头开始重新播放。+loop()重复播放这个音频,+stop()停止播放这个音频。
package displayimageplayaudio;
import java.applet.Applet;
import java.applet.AudioClip;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JApplet;
import javax.swing.JLabel;
/**
*
* @author john
*/
public class DisplayImagePlayAudio {
/**
* @param args the command line arguments
*/
public class DisPlayImagePlayAudio extends JApplet{
private AudioClip audioClip;
public DisPlayImagePlayAudio(){
URL urlForImage = getClass().getResource("china.jpg");
add(new JLabel(new ImageIcon(urlForImage)));
URL urlForAudio = getClass().getResource("遥远的她,mid");
audioClip = Applet.newAudioClip(urlForAudio);
audioClip.loop();
}
public void start(){
if(audioClip!=null) audioClip.loop();
}
public void stop(){
if(audioClip!=null) audioClip.stop();
}
}
}