当前位置: 代码迷 >> J2ME >> JMF -java media framwork的安装有关问题
  详细解决方案

JMF -java media framwork的安装有关问题

热度:516   发布时间:2016-04-17 20:58:19.0
JMF -java media framwork的安装问题

电脑配置是: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加进去就一切都好了。祝你好运


版权声明:本文为博主原创文章,未经博主允许不得转载。

  相关解决方案