求助,有关Applet小程序中播放声音的问题(AudioClip)
我写了个小程序,主要是播放3个预设好文件名的声音文件,现在如果在路径中放入了这3个文件的话,播放功能一切正常。问题出在了,我移除这些文件后,本应该提示文件没有读取才对,但是小程序下方依然显示播放这几个文件,就是没声音出来,不知道为什么。。。问题主要是onceClip=this.getAudioClip(getDocumentBase(),start); 这里,如果文件夹里没有任何名为start字符串的文件那onceClip应该是null吧??为何还是会运行
if(onceClip!=null)后的代码,而不是else后的。。。求解
附上代码:
import java.awt.*;
import java.applet.*;
import javax.swing.*;
public class Mysound extends Applet{
String[] sound={"sound1.wav","sound2.wav","sound3.wav"};
JComboBox SList=new JComboBox(sound);
AudioClip onceClip;
Button play,circle,stop;
String start="sound1.wav";
boolean a;
public void init(){
resize(300,200);
add(SList);
a=false;
play=new Button("播放");
circle=new Button("连续");
stop=new Button("停止");
add(play);
add(circle);
add(stop);
onceClip=this.getAudioClip(getDocumentBase(),start);
}
public boolean action(Event event,Object arg){
if(event.target==play){
if(a==true)
onceClip.stop();
start=(String)SList.getSelectedItem();
onceClip=this.getAudioClip(getDocumentBase(), start);
if(onceClip!=null){
onceClip.play();
a=true;
showStatus("Playing "+start);
}
else showStatus(start+" not load yet");
return true;
}
else if(event.target==circle){
if(a==true)
onceClip.stop();
start=(String)SList.getSelectedItem();
onceClip=this.getAudioClip(getDocumentBase(), start);
if(onceClip!=null){
onceClip.loop();
a=true;
showStatus("Playing "+start);
}
else showStatus(start+" not load yet");
return true;
}
else if(event.target==stop){
if(onceClip!=null){
onceClip.stop();
a=false;
showStatus("stop play");
}
return true;
}
return false;
}
}