在我的Swing GUI中embeddedvideo的简单方法

我一直在寻找一种将videoembedded到Java Swing GUI中的简单方法。 我追风吗? 理想情况下,我喜欢有这样的东西:

VideoPlayer video = new VideoPlayer("filename"); frame.getContentPane().add(video); video.play(); 

我在寻找不存在的东西吗? 我主要针对Linux进行开发,但考虑到Windows,因此我可能会尝试在未来使应用程序跨平台。

附加信息:

  • 我之前看过JMF,在实际显示和播放video之前所需的代码量并不令人满意。 我可能会再次访问它。
  • 我想到了一个使用VLC播放video的embedded式浏览器,但又不是最简单的事情。
  • 我完全控制了要播放的video的格式。 它们的数量是固定的,如果需要的话可以重新编码。

Solutions Collecting From Web of "在我的Swing GUI中embeddedvideo的简单方法"

我不知道为什么你认为你需要大量的代码来使用JMF。

public class mediaPlayer extends JFrame { public mediaPlayer() { setLayout(new BorderLayout()); //file you want to play URL mediaURL = //Whatever //create the media player with the media url Player mediaPlayer = Manager.createRealizedPlayer(mediaURL); //get components for video and playback controls Component video = mediaPlayer.getVisualComponent(); Component controls = mediaPlayer.getControlPanelComponent(); add(video,BorderLayout.CENTER); add(controls,BorderLayout.SOUTH); } }
public class mediaPlayer extends JFrame { public mediaPlayer() { setLayout(new BorderLayout()); //file you want to play URL mediaURL = //Whatever //create the media player with the media url Player mediaPlayer = Manager.createRealizedPlayer(mediaURL); //get components for video and playback controls Component video = mediaPlayer.getVisualComponent(); Component controls = mediaPlayer.getControlPanelComponent(); add(video,BorderLayout.CENTER); add(controls,BorderLayout.SOUTH); } } 

一个完整的媒体播放器像6行,概率本可以做得更少。 如果你所需要的只是一些基本的东西,那么就使用JMF。

Zemzela提到,Xuggle也是一个很好的解决方案,但是需要更多的工作。

还有Java绑定VLC。 点击这里

你可以使用xuggle 。 这是他们的网站http://www.xuggle.com/ 。 我用它来显示AVI(DIVX)和作品“好”。 JMF我比较慢xuggle比较。 java中的问题是你无法精确地同步窗口上的每一帧,因为Thread.sleep(30)没有准确地睡眠30毫秒,并且在Windows操作系统中睡眠的最小时间是16毫秒,所以你不能调整它大约30毫秒。 在Linux上应该更准确地工作,我认为最小休眠时间是1毫秒。