2014-05-25 91 views
-2

我有大約20種不同的聲音,我希望每隔1秒播放一次。每個聲音的持續時間大約只有0.7秒。我甚至不知道如何將mp3導入到Java中。我如何在java中做到這一點?在java中每x秒播放聲音的簡單方法

UPDATE

try 
{ 
     in = new FileInputStream(new File("C:\\Users\\Toshiba\\Downloads\\Music\\adios.wav")); 

     AudioStream as = new AudioStream(in); 
     AudioPlayer.player.start(as); 

     Thread.sleep(1*1000); 

    } catch (Exception e) 
    { 
     JOptionPane.showMessageDialog(null, e); 
    } 

我得到了新的問題。一旦它開始

+0

嘗試編寫代碼,做到這一點。 – Maroun

+0

我會使用[JavaFX](http://www.oracle.com/technetwork/java/javase/overview/javafx-overview-2158620.html),因爲它有一個可以播放mp3的MediaPlayer類,而默認的Java幾乎沒有或不支持mp3。使用TimerTask任務間隔播放聲音。 – Cobbles

+0

AudioPlayer是內部專有API,未來可能會被刪除,因此使用不同的庫更安全。如果你不想更改爲Java,那麼你可以使用這個庫:http://www.javazoom.net/javalayer/javalayer.html – Cobbles

回答

0

您需要使用javax.sound.sampled庫,其中的文件可以發現here還,因爲你要播放聲音every x秒,你應該使用我不能阻止它

Thread.sleep(x*1000);

在播放完聲音之後。 (x是您希望計算機等待的秒數。)

如果您提供了更多代碼,我會更具體。

+0

我可能是錯的,但我不相信圖書館有mp3兼容性 – Cobbles

+0

我只需要播放聲音每1秒,這就是全部 –

+0

您需要了解我寫的圖書館 – padawan

0

使用JavaFXIt comes with netbeans

TimerTask task = new TimerTask() { 
     @Override 
     public void run() { 
      //MediaPlayer player; 
      //Media audioFile = new Media(new File("PATH_TO_SOUND")); 
      //player = new MediaPlayer(audioFile); 
      //player.play(); 

      FileInputStream in = new FileInputStream(new File("C:\\Users\\Toshiba\\Downloads\\Music\\adios.wav")); 
      AudioStream as = new AudioStream(in); 
      AudioPlayer.player.start(as); 
     } 
    }; 
Timer timer; 
timer.scheduleAtFixedRate(task, 0, 1000); //start immediately, 1000ms period 

進口:

import javafx.scene.media.Media; 
import javafx.scene.media.MediaPlayer; 
+0

'timer.scheduleAtFixedRate(task,0,1000)'給了我一個錯誤。它說找不到符號 –

+0

對不起,我已經修復了,之前我從javax庫中導入它,然後我更改爲java庫,它已解決。但它仍然給我一個錯誤,你能告訴我什麼庫需要導入? –

+0

您正在使用哪個IDE?我開始製作一個具有普通Java Swing的應用程序,但無法播放mp3,但JavaFX是一個單獨的GUI工具包。我使用JavaFX附帶的NetBeans,所以我建議你創建一個新的JavaFX項目,然後該代碼應該工作。 – Cobbles