学习JMF框架遇到的问题及总结

JMF:即 Java Media Framework(Java媒体框架)

实际上,JMF是Java的一个类包,可以从Sun公司官网上下载。只要你去下载,你会发现对JMF的更新在好几年前就停止了,目前的版本还是老旧的JMF2.1.1。

本人为了写一个小项目,想用Java写实时视频,于是找到了JMF,结果遇到一系列问题。

问题先不说,首先我们先了解一下JMF的工作原理:

点此查看介绍原理的文章:地址 、地址二

然后谈谈遇到的问题:(Win7下)

一、JMF安装不成功或检测不到摄像头:如果安装不成功,试试默认路径安装并且是用管理员权限来运行安装程序;如果检测不到摄像头,解决此问题只有安装32位的JDK解决,原因很简单,JMF太古老了。

二、JMF安装成功了,但是在项目中调用的时候还是开不起摄像头:解决此问题的方法是,进入JMF安装目录,将lib下的jmf.properties文件复制到你的项目中即可。原因是,Java不是底层语言,jmf.properties相当于一个中间件,Java语言是通过这个配置文件里的内容找到摄像头并调用的,而真正调用到的代码,却是底层用C/C++写的动态链接库(.dll文件)

三、发现每次都是在电脑开机后的第一次开启摄像头才会成功开启:这个原因我目前也不太清楚,读过国外的一些文章,有观点认为是Win下的USBvideo在作祟。


总结:

JMF真的是太过时了...以上的问题我都遇到了,为了解决这些问题花了好几天的时间,但是没有任何进展。如果要在Win下运行得像XP下那么流畅无阻碍,那估计要重写底层的动态链接库,以我目前的能力,我做不到。由此我深刻体会到了语言的差异性。直接感觉就是C/C++比Java更“底层”,在调用摄像头的时候,其实涉及到了调用底层动态链接库,而动态链接库是C/C++的东西。

你可能感兴趣的:(学习分享)