代码如下:
String userdir = "file:/"+System.getProperty("user.dir") ;
try {
                        URL eng = new URL(userdir+"/sound/engine.wav") ;
                        
                        AudioClip sound = JApplet.newAudioClip(eng) ;
                        
                                        
                        sound.loop() ;
                                        
                                } catch (Exception e) {
                        System.out.println("播放声音出现问题了") ;
                }
这段代码目的是循环播放一个声音文件,但是每次都只听到登的一声便没了下文
但是改成如下代码后就可以了
try {
                        URL eng = new URL(userdir+"/sound/engine.wav") ;
                        
                        AudioClip sound = JApplet.newAudioClip(eng) ;
                        
                        while(true)
                        {
                                
                        sound.loop() ;
                        Thread.sleep(3000) ;
                        
                        }
                } catch (Exception e) {
                        System.out.println("播放声音出现问题了") ;
                }
主要是将sound.loop()方法置于一个while循环中,但是无法解释这是为什么?求解答!

解决方案 »

  1.   

    sound.loop();   这个是不是就是读取一次音频文件?
      

  2.   

    别人都说csdn是万能 的,为什么我的问题就解决不了呢?
      

  3.   


     没看懂LZ这些的意思:String userdir = "file:/"+System.getProperty("user.dir") ;
                       URL eng = new URL(userdir+"/sound/engine.wav") ;
    看看我写的吧。public static void main(String[] args) {
    File a= new File("J:\\mp.wav"); 
    URL url=null;
    try {
    url = a.toURL();//文件路径转换为URL
    } catch (MalformedURLException e) {
    e.printStackTrace();

    AudioClip ac=Applet.newAudioClip(url); 
    ac.play();//播放
    try {
    Thread.sleep(1000);//如果需要停止就这里设置(毫秒),需要调用stop(),那样播放1秒后就暂停了
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    //ac.loop(); //循环播放(需要循环播放就调用loop() )
    //ac.stop(); //停止 
         }