JMF播放mpg格式文件出现错误Error: Unable to realize com.sun.media.amovie.AMController@14fe5

米阑儿 2013-02-01 12:57:28
JMF播放mpg格式文件出现错误Error: Unable to realize com.sun.media.amovie.AMController@14fe5c,求大神相救~~~~
代码很简单:

1.package videoplayer;
2.import java.awt.BorderLayout;
3.import java.awt.Component;
4.import java.awt.Dimension;
5.import java.awt.Frame;
6.import java.awt.event.WindowAdapter;
7.import java.awt.event.WindowEvent;
8.import java.io.IOException;
9.import java.net.URL;
10.import javax.media.ControllerEvent;
11.import javax.media.ControllerListener;
12.import javax.media.EndOfMediaEvent;
13.import javax.media.Manager;
14.import javax.media.NoPlayerException;
15.import javax.media.Player;
16.import javax.media.PrefetchCompleteEvent;
17.import javax.media.RealizeCompleteEvent;
18.import javax.media.Time;
19.
20.public class VideoPlayer extends Frame implements ControllerListener {
21.
22. private int videoWidth = 0;
23. private int videoHeight = 0;
24. private int controlHeight = 30;
25. private int insetWidth = 10;
26. private int insetHeight = 30;
27. private Player player;
28. private Component visual; //播放组件
29. private Component control = null; //控制组件
30.
31. public VideoPlayer() {
32. super("视频播放器");
33. setSize(500, 400);
34. setVisible(true);
35. addWindowListener(new WindowAdapter() {
36. public void windowClosing(WindowEvent we) {
37. if (player != null) {
38. player.close();
39. }
40. System.exit(0);
41. }
42. });
43. }
44.
45. public void play() {
46. URL url = null;
47. try {
48.//准备一个要播放的视频文件的URL
49. url = new URL("file://D:/VIDEO0017.mpg");
50.//通过调用Manager 的createPlayer方法来创建一个Player的对象
51.//这个对象是媒体播放的核心控制对象
52. player = Manager.createPlayer(url);
53. } catch (NoPlayerException e1) {
54. e1.printStackTrace();
55. } catch (IOException e1) {
56. e1.printStackTrace();
57. }
58.//对Player对象注册监听器,能在相关事件发生的时候执行相关的动作
59. player.addControllerListener(this);
60.//让Player对象进行相关的资源分配
61. player.realize();
62.
63. }
64.//监听Player的相关事件
65. public void controllerUpdate(ControllerEvent ce) {
66. if (ce instanceof RealizeCompleteEvent) {
67.//Player实例化完成后进行Player播放前预处理
68. player.prefetch();
69. } else if (ce instanceof PrefetchCompleteEvent) {
70. if (visual != null) {
71. return;
72. }
73.//取得Player中的播放视频的组件,并得到视频窗口的大小
74.//然后把视频窗口的组件添加到Frame 窗口中,
75. if ((visual = player.getVisualComponent()) != null) {
76. Dimension size = visual.getPreferredSize();
77. videoWidth = size.width;
78. videoHeight = size.height;
79. add(visual);
80. } else {
81. videoWidth = 320;
82. }
83.//取得Player中的视频播放控制条组件,并把该组件添加到Frame 窗口中
84. if ((control = player.getControlPanelComponent()) != null) {
85. controlHeight = control.getPreferredSize().height;
86. add(control, BorderLayout.SOUTH);
87. }
88.//设定Frame 窗口的大小,使得满足视频文件的默认大小
89. setSize(videoWidth + insetWidth, videoHeight + controlHeight
90. + insetHeight);
91. validate();
92.//启动视频播放组件开始播放
93. player.start();
94. } else if (ce instanceof EndOfMediaEvent) {
95.//当播放视频完成后,把时间进度条恢复到开始,并再次重新开始播放
96. player.setMediaTime(new Time(0));
97. player.start();
98. }
99. }
100.
101. public static void main(String[] args) {
102. VideoPlayer vp = new VideoPlayer();
103. vp.play();
104. }
105.}出现错误:
run:
Error: Unable to realize com.sun.media.amovie.AMController@14fe5c
Error value: 800c000d
成功构建 (总时间: 15 秒)
求各位大神搭救,小女子在这谢啦~~~
...全文
3913 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
季枝 2015-03-14
  • 打赏
  • 举报
回复 1
我想说我转了格式也没用。。。。。
zlg2013 2014-04-03
  • 打赏
  • 举报
回复
请教版主:我在用jmf编制一个音乐播放器的时候,碰到"无法解析导入javax.media"的问题,请问如何解决。谢谢!
窝头就辣椒 2013-09-16
  • 打赏
  • 举报
回复
楼主你的帖子帮我大忙了!!!不知道其他的JMF的技术,楼主能不能分享啊??
grasshoper97 2013-03-10
  • 打赏
  • 举报
回复
经过一个小时的查资料和实验,已经解决了 解决办法: 对播放的视频用格式工厂进行转码,我转成avi 320X240 mjpeg pcm 格式,程序可以顺利运行。 结论,JMF对格式支持的不够全,仅仅支持目前几十种格式中的一小部分。 我尝试mp3文件,居然也不能播放,但是直接用录音机录制的wav可以顺利播放。
grasshoper97 2013-03-10
  • 打赏
  • 举报
回复
我今天也遇到这个问题了,还没搞懂

13,097

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧