资源描述:
《java 视频播放》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、主要是用到jmf(Java媒体框架),百度下载安装jmf(具体的自己百度教程,安装在Java主目录下),先测验是否安装成功,随便百度一个可运行的代码,看看能否播放mpeg或者mpg格式的视频文件,如果播放没有声音或者没有图像,那么是安装失败(一般要把jmf的jar包复制到jdk的lib下或者jre的lib下,我的是这些包被放在jrelibext下并设置相应的环境变量),重新安装几遍吧。Player的状态变化图Jmf播放视频的过程是这样的,媒体定位器根据文件定位媒体,管理器根据媒体定位创建播放器,播放器添加媒体控制器后,开始监听媒体状态
2、,然后根据不同的状态事件进行操作。示例程序:importjava.awt.Component;importjava.awt.Container;importjava.awt.GridBagConstraints;importjava.awt.GridBagLayout;importjavax.media.ControllerEvent;importjavax.media.ControllerListener;importjavax.media.EndOfMediaEvent;importjavax.media.Manager;import
3、javax.media.MediaLocator;importjavax.media.Player;importjavax.media.PrefetchCompleteEvent;importjavax.media.RealizeCompleteEvent;importjavax.media.Time;importjavax.swing.JFrame;publicclassTestextendsJFrame{publicContainervideoContainer=newContainer();publicGridBagLayoutla
4、yout=newGridBagLayout();//可变布局publicGridBagConstraintsconstraints=newGridBagConstraints();//布局设置publicVideoPlayervideoPlayer=newVideoPlayer();publicTest(){videoPlayer.play("file:/C:/Users/xxb/Desktop/cat.mpeg");videoContainer.setLayout(layout);constraints.fill=GridBagCons
5、traints.BOTH;//组件随显示变化的选项constraints.weightx=1;//水平扩展,即显示变化时,长度变化constraints.weighty=1;//垂直扩展,即高度变化while(videoPlayer.getMediaShow()==null
6、
7、videoPlayer.getMediaControl()==null){}addComponent(videoPlayer.getMediaShow(),layout,constraints,0,0,4,1,videoContainer);addComponent
8、(videoPlayer.getMediaControl(),layout,constraints,0,1,1,1,videoContainer);this.add(videoContainer);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setLocation(350,120);this.setSize(750,560);this.setVisible(true);}publicvoidaddComponent(Componentcomponent,GridBagL
9、ayoutlayout,GridBagConstraintsconstraints,intx,inty,intwidth,intheight,Containercontainer){constraints.gridx=x;constraints.gridy=y;constraints.gridwidth=width;constraints.gridheight=height;layout.setConstraints(component,constraints);container.add(component);}publicstatic
10、voidmain(String[]args){newTest();}}单独的VideoPlayer类publicclassVideoPlayer{privatePlayerplayer;//播