實現具體步驟:
1.確定視頻文件的位置
MediaLocator mrl=new MediaLocator(new java.lang.String(“文件路徑和文件名”));
2.利用Manager.createPlayer創建一個播放器(Player)
Player player=null;
player=Manager.createPlayer(mrl);
3.使用addControllerListener將此applet注冊為播放器的控制器監視器。注冊此監視器的目的是只要播放器載入一個媒體事件,那麼該applet將會自動調用controllerUpdate方法。
player.addControllerListener(this);
4.播放
player.start();
5.停止與釋放
player.stop();
player.deallocate();//調用此方法可以釋放所有獨占資源,這樣可以避免其它播放器無法啟動。
6.關閉
player.close();//釋放所有資源。
7.
①controllerUpdate方法可以通知applet對播放器的事件作出反應。
②一個播放器的用戶接口容器只有在該播放器的狀態為Realized時才能顯示。
③用戶接口容器包括:可視容器(VisualComponent)和控制面板容器(ControlPanelComponent)。
源代碼:
PlayerApplet.java
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Component;
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.Player;
import javax.media.RealizeCompleteEvent;
public class PlayerApplet extends Applet implements ControllerListener {
/**
* Playing an MPEG Movie in an Applet
*/
private static final long serialVersionUID = 1L;
Player player = null;
public void init() {
setLayout(new BorderLayout());
MediaLocator mrl = new MediaLocator(new java.lang.String(
""));
try {
player = Manager.createPlayer(mrl);
//System.out.println("test1:" + player);
player.addControllerListener(this);
} catch (Exception e) {
System.err.println("Got exception " + e);
}
}
public void start() {
player.start();
}
public void stop() {
player.stop();
player.deallocate();
}
public void destroy() {
player.close();
}
public synchronized void controllerUpdate(ControllerEvent event) {
if (event instanceof RealizeCompleteEvent) {
Component comp;
if ((comp = player.getVisualComponent()) != null)
add("Center", comp);
if ((comp = player.getControlPanelComponent()) != null)
add("South", comp);
validate();
}
}
}