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

[quote][color=red]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[/color]
在测试JMF时出现了这样的错误,一般是avi的编码格式问题,JMF对一些新的avi格式是不支持的,特上传了一个通过测试的avi;以供测试之用
[/quote]
/**
* 视频播放测试
*/
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();// 刷新窗体
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值