2.构造AudioPlay类--音频播放wav,注重异常处理
需要注重的是,当播放时,界面上的各个按钮应当仍然可以对用户的操作进行事件响应,所以至少需要两个线程:一个控制歌曲的播放,另外一个对用户事件进行响应。因此我们的AudioPlay类需要实现Runable接口,以使用多线程技术。根据JDK的解释-JDK1.4.0,任何需要由线程执行的实例都应当实现Runable接口,而且由于我们只需要重写run()方法和stop()方法,并给start()方法多态化,所以我们选择实现Runable接口,这样就可以不需要继续Thread类而使用Thread类的实例来运行了。
package myplayer;
import com.sun.media.sound.JavaSoundAudioClip;
import java.io.*;
/**
* <p>Title: 音频播放器</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author 放飞网
* @version 1.0
*/
public class AudioPlay
implements Runnable {
PRivate JavaSoundAudioClip locate, warning;
protected boolean threadExit;
protected boolean stopped;
protected boolean playing;
Thread playerThread;
public AudioPlay() {
}
public void start(File f) {
playing = true;