Java是完美的媒体播放器吗?

Java是完美的媒体播放器吗?,java,media-player,media,Java,Media Player,Media,我期待着用java构建一个媒体播放器,基本上我所发现的是。但是,同样,此API不是最新的,不支持最新的格式,如MKV。在更多的研究中,我偶然发现 我很兴奋,但后来又挖了一些,留下了这个 现在,我对所有优秀的媒体播放器(VLC、KMPlayer等)如何能够支持所有视频和音频格式感到失望和困惑。它们必须使用编程语言构建,IMHO 因此,我的问题是,为了构建一个支持所有类型媒体文件的完整媒体播放器: JAVA是否不称职 有人曾经用JAVA构建过一个好的媒体播放器吗 是Java还是没有现代语言可以做

我期待着用java构建一个媒体播放器,基本上我所发现的是。但是,同样,此API不是最新的,不支持最新的格式,如
MKV
。在更多的研究中,我偶然发现

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

现在,我对所有优秀的媒体播放器(VLC、KMPlayer等)如何能够支持所有视频和音频格式感到失望和困惑。它们必须使用编程语言构建,IMHO

因此,我的问题是,为了构建一个支持所有类型媒体文件的
完整媒体播放器

  • JAVA
    是否不称职
  • 有人曾经用
    JAVA
    构建过一个好的媒体播放器吗
  • 是Java还是没有现代语言可以做到这一点
  • 我有依赖性,选择C,C++来做这个吗?
    Java是一种编程语言,它是为支持多种平台(如Windows、Macintosh和Linux)而创建的。它使用一个虚拟机:一个沙箱。因此,有一些限制是基于这个沙箱系统的:您想要在Java中使用的所有东西都必须与所有平台兼容,Java是为所有平台创建的。因为播放媒体离系统很近,当然离硬件(声卡、图形板等)也很近,所以Java在使其与所有平台兼容方面可能会遇到问题。另一个大问题是:许多需要阅读和播放的编解码器(例如OGG Vorbis)都不是开源的,因此在找到一个好的API来使用它们时会遇到问题。当然有API,但我没有使用它们的经验

    JAVA不称职吗

    不,但Java不是为了做系统工作而创建的。当然,媒体播放不是一个系统工作,而是离系统很近。Java并没有实现用于播放音乐或视频的编解码器,所以正如我前面所说的,您需要定制API

    是Java还是没有现代语言可以做到这一点

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

    我有没有依赖和选择C、C++来做这个? 在我看来,这是你最好的机会。您甚至可以使用VB或VB.Net或其他任何东西,但我认为,Java会给您带来更大的问题。当然,这只是我的经验,其他人可能会说你不一样,但我认为:是的,C++是一个更好的语言播放器。 希望,这个答案对你有帮助,问候 锡德拉


    另外,抱歉,如果我的英语不是很好,它不是我的母语……

    默认情况下在Java中包含更多格式的主要问题是许可限制-许多流行格式都有专利和许可证,而对于甲骨文这样的公司来说,作为JRE的一部分来支持它们是不划算的(很可能)

    然而,正如前面提到的,JFX8现在是开源的,因此,如果您愿意,您可以在额外的GStreamer插件中编译。我最近用MKV做了这件事,如果你想用另一种格式做的话,这个过程会被描述

    由于MKV是一种开放格式,我在理论上也看不到它不能包含在默认类中的原因,所以我在补丁中创建了一个新的版本,希望它能在不久的将来作为标准版本(绝对最早的8u40)


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

    javafx 8是开源的-因此您可以随意修改它:@assylias true,但我希望有一个现有的解决方案,因为这些视频格式已经存在多年了!Java是有能力和足够快的。JavaFx8中支持的文件列表:@assylias已经检查过了,仍然缺少许多格式:)