在任意Java程序中播放音频_java

       音频文件有多种格式。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();
           }
       }
        
}