JMF这个多媒体开发框架太牛了,简单的几句代码就能实现一个视频播放器的开发,厉害,就是支持的格式少了一些,没关系,这个视频播放器可以播放mpg, avi, fvl等等,想播放其他的请开发自己的插件,下面将代码贴上去,
包com.bird.jmf; 进口java.awt.BorderLayout; 进口java.awt.Component; 进口java.awt.Dimension; 进口java.awt.Frame; 进口java.awt.Panel; 进口java.awt.event.WindowAdapter; 进口java.awt.event.WindowEvent; 进口java.io.IOException; 进口java.net.MalformedURLException; 进口java.net.URL; 进口javax.media.CannotRealizeException; 进口javax.media.ControllerEvent; 进口javax.media.ControllerListener; 进口javax.media.EndOfMediaEvent; 进口javax.media.Manager; 进口javax.media.MediaLocator; 进口javax.media.NoPlayerException; 进口javax.media.Player; 进口javax.media.PrefetchCompleteEvent; 进口javax.media.RealizeCompleteEvent; 进口javax.media.Time; @SuppressWarnings({“限制”、“未使用”}) 公共类JMFSample实现ControllerListener { 公共静态void main (String [] args) { JMFSample sp=new JMFSample (); sp.play (); } 私人玩家媒体播放器; 私人架f; 私人球员球员; 私人面板面板; 私人组件视觉; 私人组件控制=零; 公共空间玩(){ f=新框架(“JMF Sample1”); f。addWindowListener(新WindowAdapter () { 公共空间windowClosing (WindowEvent我们){ 如果(球员!=null) { player.close (); } system . exit (0); } }); f.setSize (500400); f.setVisible(真正的); 网址URL=零; 尝试{//准备一个要播放的视频文件的URL url=新的url(“文件:/d:/2. mpg”); }捕捉(MalformedURLException e) { e.printStackTrace (); } 尝试{//通过调用经理的createPlayer方法来创建一个球员的对象//这个对象是媒体播放的核心控制对象 球员=Manager.createPlayer (url); }捕捉(NoPlayerException e1) { e1.printStackTrace (); }捕捉(IOException e1) { e1.printStackTrace (); }//对球员对象注册监听器,能噶偶在相关事件发生的时候执行相关的动作 player.addControllerListener(这个);//让球员对象进行相关的资源分配 player.realize (); } 私人int videoWidth=0; 私人int videoHeight=0; 私人int controlHeight=30; 私人int insetWidth=10; 私人int insetHeight=30;//监听玩家的相关事件 公共空间controllerUpdate (ControllerEvent ce) { 如果(ce instanceof RealizeCompleteEvent) {//玩家实例化完成后进行播放器播放前预处理 player.prefetch (); }else if (ce instanceof PrefetchCompleteEvent) { 如果(视觉!=null) 返回;//取得球员中的播放视频的组件,并得到视频窗口的大?/然后把视频窗口的组件添加到框架窗口中, 如果((视觉=player.getVisualComponent ()) !=null) { 尺寸大?visual.getPreferredSize (); videoWidth=宽度; videoHeight=size.height; f.add(视觉); 其他}{ videoWidth=320; }//取得球员中的视频播放控制条组件,并把该组件添加到框架窗口中 如果((控制=player.getControlPanelComponent ()) !=null) { .height controlHeight=control.getPreferredSize (); f。添加(控制、BorderLayout.SOUTH); }//设定框架窗口的大小,使得满足视频文件的默认大小 f。(setSize videoWidth + insetWidth videoHeight + controlHeight + insetHeight); f.validate ();//启动视频播放组件开始播放 player.start (); mediaPlayer.start (); }else if (ce instanceof EndOfMediaEvent) {//当播放视频完成后,把时间进度条恢复到开始,并再次重新开始播放 的球员。setMediaTime(新的时间(0)); player.start (); } } } >之前效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
使用JMF实现java视频播放器