JMF创建播放器
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package graduatedesign;
import java.awt.Component;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.media.*;
/**
*
* @author duguhaotian
*/
public class player extends Frame implements ControllerListener {
Player p;
Component vc;
player(String ss, String mediaurl) {
super(ss);
try {
p = Manager.createPlayer(new MediaLocator(mediaurl));
/*
* 创建播放器,MediaLocator确定所需的协议和媒体资源的位置,如果找不到播放器会返回一个NoPlayerException对象。
*/
} catch (NoPlayerException e) {
System.out.println("could not find a player.");
System.exit(-1);
} catch (java.io.IOException e) {
System.out.println(e);
System.exit(-1);
}
if (p == null) {
System.out.println("trouble creating player.");
System.exit(-1);
}
p.addControllerListener(this); //注册事件监听器
p.prefetch(); //播放器进入Prefetching状态
}
@Override
public void controllerUpdate(ControllerEvent ce) {
if (ce instanceof EndOfMediaEvent) {//播放到达终点
p.setMediaTime(new Time(0));//倒带
p.start();//重新播放
return;
}
if (ce instanceof PrefetchCompleteEvent) {//播放器处于Prefetched状态
p.start();//播放
return;
}
if (ce instanceof RealizeCompleteEvent) {//播放器处于Realized状态
vc = p.getVisualComponent();//返回可视化组件
if (vc != null) {
add(vc);
}
pack();
setResizable(false);//窗口大小固定不变
setVisible(true);//可见
}
}
public static void main(String args[]) {
player nowFrame = new player("player example1", "file:///D:/1.avi");
nowFrame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
红色部分的简介:文件是在D盘下的1.avi。一定要加一个file:///。