【问题标题】:Java for a perfect Media Player?Java 是完美的媒体播放器吗?
【发布时间】:2026-02-16 16:25:01
【问题描述】:

我期待用java构建一个媒体播放器,基本上我找到的是JMF。但是,话又说回来,这个 API 不是最新的,也不支持最新的格式,例如 MKV。在更多的研究中,我偶然发现了

Any simple (and up to date) Java frameworks for embedding movies within a Swing Application?

很兴奋,但后来又挖了一些,给我留下了这个

Adding other video codecs / DVD support to JavaFX 2.2

现在,我很失望,并且修复了所有优秀的媒体播放器(VLC、KMPlayer 等)如何能够支持所有视频和音频格式。它们必须使用编程语言构建,恕我直言!

所以,我的问题是,为了构建一个支持all kind of media filescomplete media player

  1. JAVA不称职吗?
  2. 有没有人使用JAVA 构建过好的媒体播放器?
  3. 仅仅是 Java 还是没有现代语言可以做到?
  4. 我是否依赖并选择 C、C++ 来执行此操作?

【问题讨论】:

标签: java media-player media


【解决方案1】:

嗯,Java 是一种为支持多种平台(如 Windows、Macintosh 和 Linux)而创建的编程语言。它适用于虚拟机:沙箱。所以有一些基于这个沙盒系统的限制:你想在 Java 中使用的所有东西都必须与所有平台兼容,java 是为创建的。而且由于播放媒体非常靠近系统,当然还有硬件(声卡、显卡等),Java 可能会遇到问题,使其与所有平台兼容。另一个大问题是:许多你必须阅读和播放的编解码器(例如 OGG-Vorbis)不是开源的,所以你在寻找一个好的 API 来使用它们时会遇到问题。当然有 API,但我没有使用它们的经验。

是JAVA无能吗?

不,但没有创建 Java 来执行系统工作。当然,媒体播放不是系统工作,而是接近系统。而且 Java 没有实现用于播放音乐或视频的编解码器,因此您需要自定义 API,正如我之前所说。

仅仅是 Java 还是没有现代语言可以做到?

问题在于 Java:尝试一种支持更多系统和硬件功能的语言。

我是否有依赖并选择 C、C++ 来做到这一点?

在我看来,这是你最好的机会。您甚至可以使用 VB 或 VB.Net 或其他任何东西,但我认为,使用 Java 会遇到更大的问题。当然,这只是我的经验,其他人可能会说你不一样,但我认为:是的,C++ 是一种更好的媒体播放器语言。

希望这个答案对你有所帮助,问候 赛德拉

附:对不起,如果我的英语不是那么好,那不是我的母语......

【讨论】:

    【解决方案2】:

    默认情况下在 Java 中包含更多格式的主要问题是许可限制 - 许多流行的格式都受到专利和许可的限制,对于像 Oracle 这样的公司来说,将其中的许多格式作为 JRE 的一部分来支持只是' t 具有成本效益(很有可能)。

    但是,如前所述,JFX8 现在是开源的,因此如果您愿意,您可以编译额外的 GStreamer 插件。我最近用 MKV 做了这个,如果你想用另一种格式来做,这个过程被描述为here

    由于 MKV 是一种开放格式,理论上我也看不出它不能包含在默认类中的原因,因此我创建了一个 ticket 以及补丁 - 希望它可以作为标准包含在不太遥远的未来(绝对最早的 8u40。)

    但是,如果您现在只想在 Java 中获得良好的媒体支持,并且不介意将 VLC 作为依赖项,我会使用 VLCJ - 我在我的应用程序中使用它,它很管用。

    【讨论】: