【问题标题】:A simple way of embedding a video in my Swing GUI在我的 Swing GUI 中嵌入视频的简单方法
【发布时间】:2011-09-25 09:53:42
【问题描述】:

我一直在寻找一种将视频嵌入到我的 Java Swing GUI 中的简单方法。我在追风吗?理想情况下,我希望有类似的东西:

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

我在寻找不存在的东西吗?我主要为 linux 开发,但考虑到 windows,因为我将来可能会尝试让我的应用程序跨平台。

附加信息:

  • 我以前看过 JMF,对实际显示和播放视频所需的代码量感到不满意。我可能会再次访问它。
  • 我想到了一个可以使用 VLC 播放视频的嵌入式浏览器,但这又不是最简单的事情。
  • 我可以完全控制要播放的视频格式。它们的数量是固定的,可以根据需要重新编码。

【问题讨论】:

标签: java linux swing media-player


【解决方案1】:

我不知道您为什么认为需要大量代码才能使用 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); } }

一个完整的媒体播放器,大概只有 6 行,很可能用更少的时间完成它。如果您只需要一些基本的东西,那么请选择 JMF。

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

还有 Java 绑定 VLC。 Click Here

【讨论】:

    【解决方案2】:

    您可以使用 xuggle。这是他们的网站http://www.xuggle.com/。我用它来显示 avi(divx) 并且工作“很好”。与 xuggle 相比,JMF 我有点慢。 java中的问题是你不能准确同步windows上的每一帧,因为Thread.sleep(30)不能精确地休眠30毫秒,并且在windows操作系统中可以休眠的最小时间是16毫秒,所以你不能把它调到大约为 30 毫秒。在 linux 上应该工作更准确,我认为最短睡眠时间是 1 毫秒。

    【讨论】:

      猜你喜欢
      • 2019-01-12
      • 1970-01-01
      • 2012-04-29
      • 2013-04-02
      • 1970-01-01
      • 2011-09-02
      • 2013-06-14
      • 2011-02-02
      相关资源
      最近更新 更多