2014-02-18 66 views
0

當我執行一個按鈕時,我想播放相同的聲音,當我在兩次調用此方法時,它僅在第一個按鈕,第二個按鈕未播放時播放。如何在java中多次播放聲音?

這裏是代碼

new Thread(new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     // Take the path of the audio file from command line 

     try 
     { 
      File f=new File(this.getClass().getResource("/sounds/Attention.wav").getFile()); 
      // Create a Player object that realizes the audio 
      final Player p=Manager.createPlayer(f.toURI().toURL()); 

      // Start the music 
      p.start(); 

      try 
      { 
       Thread.sleep(100); 
      } catch (Exception e) { 
      } 

      p.stop(); 

      Thread.interrupted(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
}).start(); 
+0

使用遞歸函數 – WISHY

+1

這是爲什麼標籤使用JavaScript和jQuery?並不清楚你在說哪個按鈕。我在代碼中看不到按鈕 – Raghunandan

+0

顯示完整代碼請 – Sanjeev

回答

0

我有同樣的問題也開發遊戲。請注意,我用 的AudioInputStream clases,但這個解決方案爲我工作:

protected synchronized void play(Clip clip){ 

    try{    
     if(clip.isOpen()){ 
      System.out.println("clip is opened..."); 
      clip.start(); 
      clip.setMicrosecondPosition(0);  //like rewinding the clip 
      try {Thread.sleep(10);} 
      catch (Exception e) {} 
     } 
     System.out.println("shooting"); 
    } 
    catch(Exception e){e.printStackTrace();} 
} 
+0

也請檢查此帖:http://stackoverflow.com/questions/ 28888904/java-playing-the-same-sound-multiple-times-at-once – AXL

+0

希望這對其他人來說是有用的 – AXL