ubuntu下基于java环境实现的视频播放功能(一)视频播放组件
开发环境:ubuntu 12.04、jdk7、VLC播放器及相关firefox浏览器插件等。
Java实现的视频播放组件或技术有JMF、FMJ、JavaFX、DJNativeSwing等。
1、 JMF组件
JMF,即Java媒体框架,它支持的主要视频格式有:M-JPEG、H.263、MP3、Flash、QuickTime、AVI和MPEG-1等。在开发JMF应用程序之前要理解JMF的体系结构、接口和类。使用JMF开发视频应用要先配置开发环境,如安装JDK环境、JMF Windows Performance Pack。JMF的下载地址:http://www.oracle.com/technetwork/cn/java/javase/tech/index-jsp-140239-zhs.html,下载后会自动安装,自动配置路径。由于JMF支持的视频格式有限(有待扩充啊),所以弃之。
2、 MFJ组件
FMJ是一个Java开源项目它是JMF(Java Media Framework)的一个"替代品"并能够使用现存的第三方插件如jffmpeg和IBM的MPEG-4。它不需要给JRE安装任东西,还提供一些JMF没有的特性如:SWT支持等(百度百科)。话虽如此,不过感觉也一般,优势不明显。具体参见官方地址http://fmj-sf.net/。
3、 JavaFX框架
这个框架据说可以在一分钟内编写一个视频播放器,不过感觉有点炒作。
JavaFX是一个富客户端平台(RIA),可以创建出在电脑桌面和移动设备上都可以运行的应用。
关于JavaFX在swing中嵌入视频有一下几点要说说:javaFx实例中的AdvancedMedia是继承的javaFX里的Application这个类。Application负责掌管了视频的几个线程的启动等。swing要嵌入FX组件只有一种方式就是用JFXPanel嵌入sense。经过研究发现,可以通过AdvancedMedia继承一个applet的方式实现。
4、 DJNativeSwing组件
DJNativeSwing是一个比较好的跨平台的浏览器、Flash播放器、HTML编辑器和多媒体播放组件。其下载地址为:http://sourceforge.net/projects/djproject/files/DJ%20Native%20Swing/1.0.2%20preview/,最新的版本是DJNativeSwing-SWT-1-0-2-20130427.zip,它的一个论坛地址是:http://sourceforge.net/p/djproject/discussion/。它是一种基于浏览器的视频播放实现,所以需要浏览器安装对应的视频插件,如播放flash就要安装flash player,播放普通视频就要安装对应的视频插件(vlc插件、totem插件等,当然还需要对应解码器ffmpeg等)。播放flash可以使用DJNativeSwing中的jflashplaer类来实现,播放普通视频可以使用DJNativeSwing中的jvlcplayer类。VLC视频播放器是一个跨平台的播放器,支持Windows、Unix、Linux、Mac等,而且支持较多的视频格式,如MP4、RMVB、AVI、QT、FLV等。DJNativeSwing可以实现基于VLC播放插件的视频播放功能,也可以实现基于Windows的MediaPlayer视频播放。所以,如果你想实现java跨平台视频播放,DJNativeSwing是一个不错的选择,推荐。
这里,我选择使用DJNativeSwing组件来实现视频播放功能。