我目前正在使用JMF来获取嵌入到我的GUI中的视频。我上了一堂好看的课,但我不断收到一个奇怪的堆栈轨迹,让我挠了挠头。Java堆栈跟踪分析,媒体中的头文件错误?
Failed to configure: [email protected]
Bad header in the media: IOException when parsing hdrl
Error: Unable to realize [email protected]
javax.media.CannotRealizeException
at javax.media.Manager.blockingCall(Manager.java:2005)
at javax.media.Manager.createRealizedPlayer(Manager.java:554)
at EmbeddedPlayer.<init>(EmbeddedPlayer.java:24)
at MenuFrame.addMedia(MenuFrame.java:142)
at ConfigReader.parse(ConfigReader.java:362)
at ConfigReader.findFrames(ConfigReader.java:60)
at ConfigReader.main(ConfigReader.java:32)
Exception in thread "main" java.lang.NullPointerException
at EmbeddedPlayer.<init>(EmbeddedPlayer.java:35)
at MenuFrame.addMedia(MenuFrame.java:142)
at ConfigReader.parse(ConfigReader.java:362)
at ConfigReader.findFrames(ConfigReader.java:60)
at ConfigReader.main(ConfigReader.java:32)
seek: java.io.IOException: Negative seek offset
我只在Java中开发了一年,我不太清楚跟踪现在告诉我什么。
任何帮助,即使只是告诉我发生了什么,都会有很大帮助。
这里是EmbeddedPlayer:
import java.awt.BorderLayout;
import java.awt.Component;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.Player;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class EmbeddedPlayer extends JPanel {
private MenuFrame parent;
public static final String DEFAULT_MEDIA_PATH = "media/";
public EmbeddedPlayer(MenuFrame parent, String file) {
this.parent = parent;
setLayout(new BorderLayout());
Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, true);
Player mediaPlayer = null;
Component video = null;
Component controls = null;
try {
MediaLocator location = new MediaLocator(file);
mediaPlayer = Manager.createRealizedPlayer(location);
video = mediaPlayer.getVisualComponent();
controls = mediaPlayer.getControlPanelComponent();
} catch (Exception e) {
e.printStackTrace();
}
if (video != null) { add(video, BorderLayout.CENTER); }
if (controls != null) { add(controls, BorderLayout.SOUTH); }
this.parent.add(this);
mediaPlayer.start();
}
}
在此基础上例如:http://www.deitel.com/articles/java_tutorials/20060422/PlayingVideowithJMF/
你传入的'file'的值是多少? –
文件是一个字符串,包含我的视频文件的完整路径:file:/// E:\〜java \ Projects \ 1.avi – n0pe