【问题标题】:Play video in a Java Desktop Application在 Java 桌面应用程序中播放视频
【发布时间】:2012-05-15 10:09:06
【问题描述】:

我正在尝试 Java Media Framework,但我注意到它不支持许多视频格式,而且似乎更新不够。是否有适用于 Windows Java 桌面应用程序的 JMF 替代方案?

【问题讨论】:

  • Playing video in Java的可能重复
  • @artbristol 不同意,这是关于框架的问题,最后一个问题是关于 JMF 的更多问题。不管怎样,另一个问题现在已经很老了,除了 Xuggler 之外,没有很多其他优秀框架的链接。
  • @berry120 没有好的框架,这就是原因。这个问题已经被问过很多次了。
  • @artbristol 这当然取决于你对一个好的框架的定义,但我认为现在(与一年或两年前相反)它们开始出现了。我的应用程序成功地使用 VLCJ 提供了带有自定义文本覆盖的跨平台视频支持,并且可以使用 JavaFX 实现类似的事情。或者对于从较低级别的流中提取数据包,Xuggler 非常好。这一切都取决于你所追求的!
  • @berry120 公平点。很高兴听到您对 VLCJ 的体验是积极的 - 也许竞争会刺激 JavaFX 并在官方平台上获得一些体面的支持。

标签: java video jmf


【解决方案1】:

是的,我绝对建议远离 JMF。我感受到了你的沮丧!我个人推荐VLCJ,特别是如果您需要对多种格式的支持 - 我在我的应用程序中使用它并且效果很好。

以下问题也可能是相关的:

Dealing with video (DVDs, .avi .mkv) in Java

Adding other video codecs / DVD support to JavaFX 2.2

【讨论】:

  • 谢谢。我终于使用了 vlcj,因为 JavaFX 需要一个 JavaFX 项目,而我之前已经启动了一个 Java 项目。其实我有问题。我需要在 JPanel 中播放视频组件。我该怎么做?
  • @honnix 最好的方法是使用 Canvas,而不是 JPanel - 这样 VLC 就可以直接播放它。另一种方法是使用 DirectMediaPlayer,它会为您提供一个 BufferedImage,您可以将其显示在您选择的任何内容上。后一种方法更灵活,但即使在高功率系统上也会消耗大量 CPU 用于高清视频。
  • 嗨,我使用的是 Canvas,但出现异常“java.lang.IllegalStateException:视频表面组件必须是可显示的”。我已经问过stackoverflow.com/questions/10609338/…,因为我真的被困住了。我见过的所有示例都运行相同的代码。我无法注意到我错在哪里。提前致谢。
  • @honnix 查看我的答案,但是当您收到该错误时,几乎总是因为在您尝试播放视频之前画布没有显示在屏幕上。
【解决方案2】:

简而言之,它看起来像一个死胡同。我会切换到 JavaFX 2.1——它得到了更好的支持,而且似乎也是“活的”。还有更多关于 Stack Overflow 的信息:Adding other video codecs / DVD support to JavaFX 2.2

【讨论】:

    猜你喜欢
    • 2019-10-05
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 2012-04-05
    相关资源
    最近更新 更多