EL比赛技术日志(3)

2012-03-23 21:18:27

==========================

呵呵今天一开就要写三篇了。搞懂JMF视频播放机制,自己赞一个哈哈,用了两个小时啊嘲弄^_^

下面直接写了。这个调用方法是我自己研究发明的,绝对没有参考任何资料!如有雷同纯属巧合呵呵!

EL比赛技术日志(1)中说到要把媒体播放做成一个类,我想到一个方法,是这样实现的:

 

 1 import javax.media.*; 
 2 import javax.swing.JFrame; 
 3 import java.awt.*; 
 4 
 5 public class MediaPlayer implements ControllerListener { 
 6   Player player1; 
 7   Component vc; 
 8   JFrame ob; //这里是原创部分,我可以传入我的游戏主窗口,然后把视频播放器add上去 
 9 
10   private static MediaPlayer mp = new MediaPlayer(); 
11   //播放器多了可不行,单例类轻松解决 
12   private MediaPlayer() { 
13   
14   }
15 
16   public static MediaPlayer getInstance(){
18           return mp;
20   }
21 
22   //播视频时候把游戏窗体作为参数传入
23 
24   public void startVideo(JFrame i) { 
25           ob = i; 
26           player1.addControllerListener(this); 
27           player1.prefetch(); 
28           player1.start(); 
29   }
30 
31   //读媒体 
32   public void loadMedia() { 
33          try { 
34       player1 = Manager.createPlayer(new MediaLocator("file:D:/k.mpg")); 
35      }catch (java.io.IOException e2) { 
36       System.out.println(e2); 
37           return; 
38      } catch (NoPlayerException e2) { 
39           System.out.println("不能找到播放器."); 
40           return; 
41      } 
42   } 
43     //这里如果发现读的是视频,就给他添加播放组件comp,然后把comp添加到传入的窗口上 
44     @Override 
45     public synchronized void controllerUpdate(ControllerEvent e) { 
46               if (e instanceof RealizeCompleteEvent) { 
47                   Component comp; 
48                   if ((comp = player1.getVisualComponent()) != null) 
49                      ob.add("Center", comp); 
50         } 
51     } 
52 }

 

posted @ 2015-02-04 11:16  郝鑫  阅读(89)  评论(0)    收藏  举报