电脑配置是: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列表中去就OK path.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(); } @Override public 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加进去就一切都好了。祝你好运
版权声明:本文为博主原创文章,未经博主允许不得转载。