標籤:java eclipse jmf
電腦配置是:win7旗艦版64位,JDK和eclipse都是64位的;下載的JMF是jmf-2_1_1e-windows-i586,這個東西網上好多人說只支援32位JDK,如你所料。下載下來也是安裝不了;就提示說overwrite protection視窗,說我C盤下:C:\Users\pengrong\AppData\Local\Temp的檔案是否覆蓋,不管選yes還是no都不安裝,我一直都是選擇yes to All,然後都是然並卵,最後往上都是說要把JDK換成32位的,這不是要人死 嗎。所以網上也就有了不安裝也能用的文章,然後我並沒有用他的文章。(詳情不用安裝JMF也能用JMF)。我用的的是第二種方法,我進入提示說提示說overwrite protection視窗下的C:\Users\pengrong\AppData\Local\Temp\....我發現有個setup.exe可執行檔,雙擊它我就這樣裝好了。JMF
因為我是預設安裝的,所以安裝位置是在C:\Program Files (x86)\JMF2.1.1e;那麼馬上就要配置CLASSPATH, Path環境變數了。直接進入
.找到CLASSPATH,分別增加jmf.jar和sound.jar
C:\Program Files (x86)\JMF2.1.1e\lib\jmf.jar;
C:\Program Files (x86)\JMF2.1.1e\lib\sound.jar;
(其中C:\Program Files (x86)\JMF2.1.1e為你的JFM的安裝路徑)
c.找到PATH,增加動態庫
C:\Program Files (x86)\JMF2.1.1e\bin;
提示:每添加一項後,不要忘記了後面的分號
然後我就可以用一個簡單的常式測試下MP3格式的音樂能不能被音響唱出來了
package com.playmusic;import javax.media.ControllerEvent; import javax.media.ControllerListener; import javax.media.NoPlayerException; import javax.media.Player; import javax.media.Manager; import javax.media.MediaLocator; import javax.media.EndOfMediaEvent; import javax.media.PrefetchCompleteEvent; import javax.media.RealizeCompleteEvent; import java.io.*; import java.util.*; public class PlayerMusic implements ControllerListener { //播放對象 private Player player; //是否迴圈播放 private boolean first,loop; //檔案路徑 private String path; //存放MP3檔案 引用private List<String> mp3List; //當前MP3檔案數量 private int mp3NO=0; PlayerMusic(List<String> mp3List) { this.mp3List=mp3List; } //播放方法 public void start() { try { player = Manager.createPlayer( new File( mp3List.get(mp3NO) ).toURI().toURL() ); } catch (NoPlayerException e){ // TODO 自動產生 catch 塊 e.printStackTrace(); System.out.println("不能播放此檔案!"); return; } catch (IOException e) { // TODO 自動產生 catch 塊 e.printStackTrace(); return; } if(player==null) { System.out.println("播放檔案為空白!"); return; } player.addControllerListener(this); //提取媒體內容 player.prefetch(); } public static void main(String[] args) { List<String> path=new ArrayList<String>(); //只需要將mp3音樂的全路徑加進path列表中去就OKpath.add("F:/WorkStation/TankeWar4/CTO坦克大戰所有音效/開始.mp3"); path.add("F:/WorkStation/TankeWar4/CTO坦克大戰所有音效/Maid with the Flaxen Hair.mp3");PlayerMusic play=new PlayerMusic(path); play.start(); }@Overridepublic void controllerUpdate(ControllerEvent e){ //當一首歌曲播放結束時,順序播放下一曲 if(e instanceof EndOfMediaEvent) { mp3NO++; System.out.println(mp3NO); if(mp3NO<mp3List.size()) { this.start(); } return; } //當提取媒體的內容結束 if (e instanceof PrefetchCompleteEvent) { System.out.println("內容結束"); player.start(); return; } //當執行個體化後 if (e instanceof RealizeCompleteEvent) { System.out.println("執行個體化"); //pack(); //執行pack()操作 return; } } }
當然最後還要掃尾工作,我也不知道為啥要做這個,不是指定了CLASSPATH ,Path的路徑了嗎
你需要在eclipse中,project ->properties -> java build path -> libraries; 選擇Add External JARs
將jmf.jar和sound.jar加進去就一切都好了。祝你好運
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
JMF -java media framwork的安裝問題