如何在JFrame中播放mp4视频文件?

时间:2011-02-05 23:36:31

标签: java video

我想在固定大小的JFrame中播放视频(mp4)。我该怎么做?是否有任何教程或文档?

4 个答案:

答案 0 :(得分:1)

“固定大小(1)JFrame”很容易,或者至少它应该是。你有特定的问题吗? (我问,因为看起来很奇怪你应该提一下。)

至于对MP4的支持,JMF将无法处理。您最好的选择是看看Google为java+mp4投入的内容。在查看了一些排名靠前的热门歌曲之后,看来这些产品并不是很好。

MP4是不可改变的要求吗? JMF可以很好地处理许多其他更简单(较旧)的格式。

如果在标准媒体播放器中打开MP4并非不可能 - 那就像以下一样简单:

Desktop.getDesktop().open(new File("the.mp4"));

(1)作为最终用户,我不得不评论我讨厌某人将视频内容传送到我无法调整大小的桌面。这是我的(dang)桌面 - 我应该可以选择视频覆盖的内容!

答案 1 :(得分:1)

JavaFX小部件MediaView能够呈现MP4文件。您可以像这样http://docs.oracle.com/javafx/8/embed_swing/jfxpub-embed_swing.htm在Swing中嵌入JavaFX,然后就可以像这样使用MediaView http://docs.oracle.com/javafx/2/media/simpleplayer.htm

答案 2 :(得分:1)

我猜您可以将视频转换为.gif文件,然后从该视频中获取音频并在后台播放,这可能会降低质量,但对于简单的事情,它应该可以正常工作。

`import java.io.File;

import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

    public class Main {

        public static void audio() {
            try {
                File file = new File("audio.wav");
                Clip clip = AudioSystem.getClip();
                clip.open(AudioSystem.getAudioInputStream(file));
                clip.loop(Clip.LOOP_CONTINUOUSLY);
                clip.start();
            } catch (Exception e) {
                System.err.println("Put the music.wav file in the sound folder if you want to play background music, only optional!");
            }
        }


        private static String arg;

        public static void main(String[] args){


        arg = "background.gif";
        JFrame f = new JFrame();
        JPanel p = new JPanel();
        JLabel l = new JLabel();
        ImageIcon icon = new ImageIcon(arg);    
        f.setSize(480, 360);
        f.setVisible(true);
        l.setIcon(icon);
        p.add(l);
        f.getContentPane().add(p);
        f.setLocationRelativeTo(null);
        f.setResizable(false);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        audio();

            }
        }

https://www.mediafire.com/?18n4iluk9hwitlb Audio.wav

http://www.mediafire.com/view/jx7vogxzsbor0j4/background.gif Background.gif

答案 3 :(得分:0)

我认为你已经使用了一个特殊的框架来做到这一点。例如,您可以使用Java Media Framework您可以在oracle主页上下载它。