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 }

浙公网安备 33010602011771号