0

我正在为一个编程课做一个项目,我想添加一个视频文件。我尝试使用 JMF,但当我尝试播放视频(使用 Java 网站上列出的格式之一)时,它给了我错误:

Unable to handle format: XVID, 320x213, FrameRate=29.9, Length=204480 0 extra bytes
Unable to handle format: mpeglayer3, 22050.0 Hz, 0-bit, Stereo, Unsigned, 8000.0 framerate,FrameSize=4608 bits
Failed to realize: com.sun.media.PlaybackEngine@39b27b
Error: Unable to realize com.sun.media.PlaybackEngine@39b27b
Could not realize media player

这是我用来测试播放器的代码:

public MediaPanel(String path) {

    try {
        videoPath = new File(path).toURI().toURL();
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }

    setLayout(new BorderLayout());
    Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, true);

    try {
        Player mediaPlayer = Manager.createRealizedPlayer(videoPath);
        Component video = mediaPlayer.getVisualComponent();
        Component controls = mediaPlayer.getControlPanelComponent();

        if (video != null)
            add(video, BorderLayout.CENTER);

        if (controls != null)
            add(controls, BorderLayout.SOUTH);

        mediaPlayer.start();
    } catch (NoPlayerException NoPlayerException) {
        System.err.println("No media player found");

    } catch (CannotRealizeException CannotRealizeException) {
        System.err.println("Could not realize media player");
    } catch (IOException IOException) {
        System.err.println("Error reading from the source");
    }
}

MediaPanel player = new MediaPanel("intro.avi");

我假设我的两个选择是制作具有 Java 网站上列出的确切规格的视频(因为显然只有文件扩展名是不够的),或者使用另一种方法来显示视频。

我怎样才能解决这个问题?我是否需要完全按照规格说明制作视频(请参阅底部的链接)?

注意: 我正在使用的类和不包含 javaFX 的旧版本的 java。请不要推荐这个,除非有一种方法我可以在不让学校重新安装更新版本的 Java 的情况下添加它。

4

0 回答 0