想寫個JAVA的MP3音樂管理器,使用JMF插件,但發現運行時總報一個異常:
Unable?to?handle?format:?mpeglayer3,?44100.0?Hz,?16-bit,?Stereo,?LittleEndian,?Signed,?16000.0?frame?rate,?FrameSize=32768?bits
Failed?to?realize:?com.sun.media.PlaybackEngine@1808009
Error:?Unable?to?realize?com.sun.media.PlaybackEngine@1808009
不知道為什么,在網上尋找答案,忙了一天也找不到正解,不過最后在努力之下,終于成功。
步驟如下:
1.首先重裝jdk,下最新安裝版的。然后把環境變量配好,確保java能夠運行。(不要用以前已安裝好的,然后改一下環境變量路徑,那樣不行,好像找不到注冊表。一定要重新安裝)
2.安裝jmf,安裝到jre下。
3.重起電腦后安裝jmf?mp3插件,也是安裝到jre下
4.在CMD中運行java?com.sun.media.codec.audio.mp3.JavaDecoder測試能否成功
5.?File?f=new?File("e:/a.mp3");
??Player?p=Manager.createRealizedPlayer(f.toURI().toURL());
??p.prefetch();
??p.start();
6.終于成功!
附
JMF的下載地址:http://www.oracle.com/technetwork/java/javase/download-142937.html
JMF?API的下載地址:http://www.oracle.com/technetwork/java/javase/index-142695.html
JMF?MP3?Plugin下載地址:http://www.oracle.com/technetwork/java/javase/download-137625.html
程序代碼:
<span style="font-size:14px;">import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;import javax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player;public class Test {public static void main(String[] args) {try {File f=new File("e:/b.mp3");Player p=Manager.createRealizedPlayer(f.toURI().toURL());p.prefetch();p.start();} catch (NoPlayerException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (CannotRealizeException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}</span>
測試成功