Java 如何让我自己的视频播放?

Java 如何让我自己的视频播放?,java,swing,jframe,media,game-engine,Java,Swing,Jframe,Media,Game Engine,所以我今天做了很多搜索,试图找出如何在JFrame中播放视频。我之所以想这样做是因为,我正在制作一个游戏,并且希望能够添加电影剪辑,就像大多数好游戏一样,比如GW2、荣誉勋章等等 所以,在我的搜索中,我找到了JMF,但完全无法使用它。这有点令人沮丧,但不管怎样。所以,我的问题是:有没有一种方法可以在不安装任何其他jar、exe等的情况下播放视频?例如,运行一个简单的代码,比如newjframe()有点简单快捷?或者这是不可能的,但有一种方法可以长期而复杂地完成它? 我也一直在寻找其他堆栈溢出的东

所以我今天做了很多搜索,试图找出如何在JFrame中播放视频。我之所以想这样做是因为,我正在制作一个游戏,并且希望能够添加电影剪辑,就像大多数好游戏一样,比如GW2、荣誉勋章等等

所以,在我的搜索中,我找到了JMF,但完全无法使用它。这有点令人沮丧,但不管怎样。所以,我的问题是:有没有一种方法可以在不安装任何其他jar、exe等的情况下播放视频?例如,运行一个简单的代码,比如
newjframe()有点简单快捷?或者这是不可能的,但有一种方法可以长期而复杂地完成它?
我也一直在寻找其他堆栈溢出的东西,但没有一个真正符合我的要求。。。如果出现最坏的情况,我只会使用Xuggler,但我不愿意

另外,基于这个答案,我计划在未来制作一个游戏引擎,这样就可以增加它的附加值

提前感谢:)

请注意:我不是在寻找对JMF的引用,或者其他类似的东西。我正在寻找一些东西,比如要调用的内置方法/类,或者长时间的变通方法,它们工作得非常好,并且可以在许多环境中实现

编辑:我曾考虑使用JEditorPane,并将视频嵌入html,但。。。。那对我不起作用。。。以下是我在那里尝试过的:

JEditorPane jep = new JEditorPane();
        jep.setEditable(false);   

//        jep.setContentType("text/html");
          jep.setText("<html><video id=\"sampleMovie\" src=\"C:\\users\\austin\\desktop\\test.mp4\" controls></video></html>");

        JScrollPane scrollPane = new JScrollPane(jep);     
        JFrame f = new JFrame("Test HTML");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.getContentPane().add(scrollPane);
        f.setPreferredSize(new Dimension(800,600));
        f.setVisible(true);
JEditorPane jep=new JEditorPane();
jep.setEditable(false);
//setContentType(“text/html”);
jep.setText(“”);
JScrollPane scrollPane=新的JScrollPane(jep);
JFrame f=新的JFrame(“测试HTML”);
f、 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f、 getContentPane().add(滚动窗格);
f、 设置首选尺寸(新尺寸(800600));
f、 setVisible(真);

但这似乎不起作用。。。请帮忙

如果您有一个
文件
名称“文件”:

编辑:

import javax.media.*;
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.net.*;
public class MediaPanel extend JPanel{
    public MediaPanel( URL mediaURL){
        setLayout(new BorderLayout());
        try{
            Player mp = Manager.createRealizedPlayer( mediaURL);
            Component video = mp.getVisualComponent();
            Component controls = mp.getControlPaneComponent();
            if(video != null){
                add(video, BorderLayout.CENTER);
            }
            if(controls != null){
                add(controls, BorderLayout.SOUTH);
            }
            mediaPlayer.start();
        }
        catch(Exception e){

        }
    }
}

如果您有一个
文件
名称“文件”:

编辑:

import javax.media.*;
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.net.*;
public class MediaPanel extend JPanel{
    public MediaPanel( URL mediaURL){
        setLayout(new BorderLayout());
        try{
            Player mp = Manager.createRealizedPlayer( mediaURL);
            Component video = mp.getVisualComponent();
            Component controls = mp.getControlPaneComponent();
            if(video != null){
                add(video, BorderLayout.CENTER);
            }
            if(controls != null){
                add(controls, BorderLayout.SOUTH);
            }
            mediaPlayer.start();
        }
        catch(Exception e){

        }
    }
}

JMF似乎已经存在了。正如您所说,难怪大多数基于Java的玩家都依赖它

所以我决定使用谷歌的搜索选项回到过去,并在2001年2月找到了一个结果:一个非常简单的从头开始使用Java和C实现的程序。怎么样?以下捕获内容来自网站:

我知道你强调你需要一个尽可能少的外部代码的解决方案。在这种情况下,似乎不需要额外的库,但您必须进行一些编译。此外,您仅限于MPEG-1。所以,这不完全是你想要的,但也许值得一看


希望有帮助

JMF似乎已经出现了。正如您所说,难怪大多数基于Java的玩家都依赖它

所以我决定使用谷歌的搜索选项回到过去,并在2001年2月找到了一个结果:一个非常简单的从头开始使用Java和C实现的程序。怎么样?以下捕获内容来自网站:

我知道你强调你需要一个尽可能少的外部代码的解决方案。在这种情况下,似乎不需要额外的库,但您必须进行一些编译。此外,您仅限于MPEG-1。所以,这不完全是你想要的,但也许值得一看


希望有帮助

mediapanel来自何方?播放器和管理器位于javax.media包中,它是JMF的一部分。这意味着这个答案忽略了问题中不使用JMF的部分。mediapanel来自何方?播放器和管理器位于javax.media包中,它是JMF的一部分。这意味着这个答案忽略了问题中要求不使用JMF的解决方案的部分。虽然它不快速且简单,但您可以使用JavaFX,据我所知,它是每个桌面JRE都附带的。我建议您尝试使用JVLC。虽然它不快速且简单,但您可以使用JavaFX,据我所知,每个桌面JRE都有。我建议您尝试使用JVLC。非常感谢!这太完美了:)@PulsePanda嘿!很高兴知道这很有帮助。谢谢你的接受和赏金。非常感谢!这太完美了:)@PulsePanda嘿!很高兴知道这很有帮助。谢谢你的接受和赏金。