当前位置: 代码迷 >> Java相关 >> 求助,有关Applet小程序中播放声音的问题(AudioClip)
  详细解决方案

求助,有关Applet小程序中播放声音的问题(AudioClip)

热度:307   发布时间:2011-04-14 18:35:29.0
求助,有关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;
     }
}
搜索更多相关的解决方案: 文件夹  字符串  null  

----------------解决方案--------------------------------------------------------