论坛首页 Java企业应用论坛

Failed to realize: com.sun.media.PlaybackEngine@480457

浏览 8937 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-03-02  
引用
Unable to handle format: XVID, 960x540, FrameRate=29.9, Length=777600 0 extra bytes
  Unable to handle format: mpeglayer3, 44100.0 Hz, 0-bit, Stereo, Unsigned, 16000.0 frame rate, FrameSize=8 bits
Failed to realize: com.sun.media.PlaybackEngine@480457
Error: Unable to realize com.sun.media.PlaybackEngine@480457

在测试JMF时出现了这样的错误,一般是avi的编码格式问题,JMF对一些新的avi格式是不支持的,特上传了一个通过测试的avi;以供测试之用

/**
 * 视频播放测试
 */
public class VedioTest extends JFrame {
	private Player player;

	public static void main(String args[]) {
		String path = "file:///E:/hello.avi";
		VedioTest vt = new VedioTest(path);
		vt.initUI();
	}

	/**
	 * 在构造器中初始化数据
	 * 
	 * @param:要初始化的数据源,即视频文件的路径
	 */
	public VedioTest(String path) {
		// 确定视频文件的位置
		javax.media.MediaLocator ml = new javax.media.MediaLocator(path);
		try {
			// 创建一个播放器对象
			player = javax.media.Manager.createPlayer(ml);
			// 创建一个播放器的控制器监听器对象
			MyConreollerListener l = new MyConreollerListener(player, this);
			// 给播放器对象注册控制器监听器
			player.addControllerListener(l);
			// 开始播放
			player.start();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 初始化界面
	 */
	public void initUI() {
		this.setTitle("JMF播放视频示例");
		this.setSize(400, 300);
		this.setDefaultCloseOperation(3);
		this.setVisible(true);
	}
}

/**
 * 视频控制器监听器类
 */
public class MyConreollerListener implements javax.media.ControllerListener {
	private Player player;
	private JFrame jf;

	public MyConreollerListener(Player player, JFrame jf) {
		this.player = player;
		this.jf = jf;
	}

	/**
	 * 实现监听器接口中的方法.此方法可通知应用程序对播放器的事件做出反应
	 */
	public synchronized void controllerUpdate(ControllerEvent e) {
		if (e instanceof javax.media.RealizeCompleteEvent) {
			Component comp;
			// 得到播放器的可视容器,即播放器显示视频的容器
			if ((comp = player.getVisualComponent()) != null) {
				// 将可视容器加到窗体上
				jf.add("Center", comp);
			}
			// 得到播放器的控制面板容器
			if ((comp = player.getControlPanelComponent()) != null) {
				// 添加到窗体上
				jf.add("South", comp);
			}
			jf.validate();// 刷新窗体
		}
	}
}

   发表时间:2011-08-24  
太帅了,我都快被avi搞死了
0 请登录后投票
   发表时间:2011-11-09  
李瑞辉++ 写道
太帅了,我都快被avi搞死了

支持分享。。。。!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics