专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > J2ME

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

发布时间:2010-06-04 22:04:26 文章来源:www.iduyao.cn 采编人员:星星草
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加进去就一切都好了。祝你好运


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

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: