2017-07-22 26 views
2

你好,我想打一個鬧鐘,現在我真的在部分在makeing播放聲音....我寫這我想在Java中播放聲音,它不`噸工作

package audio; 

import sun.audio.*; 

import java.io.File; 
import java.io.FileInputStream; 
import java.io.InputStream; 
import sun.audio.AudioPlayer; 
import sun.audio.AudioStream; 



public class Audio { 

public static void main(String[] args) { 

     InputStream in; 
     try{ 
     in = new FileInputStream(new File("‪sw.wav")); 
     AudioStream audio = new AudioStream(in); 
     AudioPlayer.player.start(audio); 
     } 
     catch(Exception e){} 

} 
} 

它不`噸播放聲音它不給我一個錯誤它沒有什麼做

我也把直接通路中的一個文件夾C:\ ...等

+2

以及你吞嚥異常....也許是你的代碼失敗,但你不要注意到 –

+0

它給了我一個FileNotFound異常 - 線程「main」中的異常java.io.FileNotFoundException:C:\ Users \ serban \ Documents \ wav sound \ sw.wav(文件名,目錄名稱或卷標語法不正確) –

+0

但文件路徑是正確的......問題是什麼? –

回答

1

試試這個:移動音頻文件添加到源文件夾,然後修改文件的路徑,格式爲:new File("‪./sw.wav"),然後對excep做一些有用的操作重刑......

public static void main(String[] args) { 

     InputStream in; 
     try{ 
     in = new FileInputStream(new File("‪./sw.wav")); 
     AudioStream audio = new AudioStream(in); 
     AudioPlayer.player.start(audio); 
     } 
     catch(Exception e){ 
      //print some helpfull info from the stack trace 
     } 
} 
+0

但是,如果應用程序和音頻資源曾被打包到jar中,則需要使用URL而不是File。 –

0

你應該提供音頻文件的完整路徑,並用雙斜線\\單獨它定義的FileInputStream的路徑問題:

in = new FileInputStream("C:\\Users\\serban\\Documents\\wav sound\\sw.wav"); 

或者相反,你可以移動音頻文件到您的Java程序的源文件夾,然後把:

in = new FileInputStream("sw.wav");