我期待用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等)如何能够支持所有视频和音频格式的问题。它们必须使用编程语言构建,恕我直言!
所以,我的问题是,为了构建支持complete media player
的{{1}}:
all kind of media files
无能吗?JAVA
建立一个好的媒体播放器?答案 0 :(得分:0)
嗯,Java是一种编程语言,它是为支持多种平台(如Windows,Macintosh和Linux)而创建的。它适用于虚拟机:沙箱。所以有一些基于这个沙箱系统的限制:你想在Java中使用的所有内容必须与所有平台兼容,为其创建java。因为播放媒体非常接近系统,当然还有硬件(声卡,图形板等),Java可能会遇到与所有平台兼容的问题。另一个大问题是:许多编解码器,你必须阅读和播放(例如OGG-Vorbis)不是开源的,所以你会遇到找到一个好的API来解决它们的问题。当然有ARE API,但我对它们没有经验。
JAVA不称职吗?
不,但是没有创建Java来进行系统工作。当然,媒体播放不是系统工作,而是靠近系统。并且Java没有实现用于播放音乐或视频的编解码器,因此您需要自定义API,正如我之前所说的那样。
只是Java还是没有现代语言可以做到?
问题是Java:尝试一种支持更多系统和硬件功能的语言。
我是否依赖并选择C,C ++来做到这一点?
在我看来,这是你最好的机会。您甚至可以使用VB或VB.Net等等,但我认为,Java会遇到更大的问题。当然,这只是我的经验,其他人可能会说你不同的东西,但我认为:是的,C ++是一种更好的媒体播放器语言。
希望,那个答案对你有所帮助,问候 Cydhra
P.S。对不起,如果我的英语不太好,那就不是我的母语了......
答案 1 :(得分:0)
默认情况下,在Java中包含更多格式的主要问题是许可限制 - 许多流行的格式绝对受到专利和许可的限制,而像Oracle这样的公司支持许多格式作为JRE的一部分只是不是'成本效益(很有可能。)
然而,如前所述,JFX8现在是开源的,如果您愿意,可以编译额外的GStreamer插件。我最近使用MKV执行了此操作,如果您想使用其他格式执行此过程,请说明here。
由于MKV是一种开放格式,我也没有理由说它为什么不能包含在默认类中,所以我创建了一个ticket以及补丁 - 希望它可以作为标准包含在内在不太遥远的未来(绝对最早的8u40。)
如果您现在只想在Java中获得良好的媒体支持,并且不介意将VLC作为依赖项,我会使用VLCJ - 我在我的应用程序中使用它并且它可以解决。