歡迎您光臨本站 註冊首頁

使用java播放聲音文件

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

  因為java強大的類庫,解決這個問題並不困難,只是API的調用問題而已.不過,不同的調用也有區別.

  很多人講要使用JFM,不過我懶得去安裝,另尋他法.網上提供最多的方法就是利用Applet中的AudioClip來解決,代碼很簡單,如下:

  public void play(String Filename)//Filename是樂曲名稱或說路徑(不過「路徑」我沒嘗試)

  {

  try {

  URL url = new URL("file:" Filename);

  AudioClip ac = Applet.newAudioClip(url);

  ac.play();

  //ac.stop();//用此函數可以停止樂曲播放

  } catch (Exception e) {

  System.out.println(e);

  }

  }

  當然,前提是導入3個包:

  import java.applet.Applet;

  import java.applet.AudioClip;

  import java.net.URL;

  然而實踐證明這個方法並不好用,播放的聲音斷斷續續,聽起來簡直是一種折磨~(不曉得這是類庫本身的原因還是我電腦的故障~)後來發現了一個好方法,是由http://wenda.tianya.cn/wenda/thread?tid=7f56d51cd8e46a29&clk=wttpcts中的」神之淚花「提供的.

  public void play(String Filename)

  {

  try{

  // 用輸入流打開一音頻文件

  InputStream in = new FileInputStream(Filename);//FIlename 是你載入的聲音文件如(「game.wav」)

  // 從輸入流中創建一個AudioStream對象

  AudioStream as = new AudioStream(in);

  AudioPlayer.player.start(as);//用靜態成員player.start播放音樂

  //AudioPlayer.player.stop(as);//關閉音樂播放

  //如果要實現循環播放,則用下面的三句取代上面的「AudioPlayer.player.start(as);」這句

  /*AudioData data = as.getData();

  ContinuousAudioDataStream gg= new ContinuousAudioDataStream (data);

  AudioPlayer.player.start(gg);// Play audio.

  */

  //如果要用一個 URL 做為聲音流的源(source),則用下面的代碼所示替換輸入流來創建聲音流:

  /*AudioStream as = new AudioStream (url.openStream());

  */

  } catch(FileNotFoundException e){

  System.out.print("FileNotFoundException ");

  } catch(IOException e){

  System.out.print("有錯誤!");

  }

  }

  而要使用這個方法,導入的包與上一方法不同:

  import sun.audio.*; //java提供的,經常被忽略吧~

  import java.io.*;

  使用這個方法在我電腦上播放,很流暢.


[火星人 ] 使用java播放聲音文件已經有2846次圍觀

http://coctec.com/docs/java/show-post-60689.html