我在寻找基于 Java 的视频播放器,不,我不需要它。只是看看那里是否有以及有多少 Java 视频播放器。令我大吃一惊的是,我什么也没找到。至少没有任何流行的,例如VLC,WMP等。我认为这些玩家有一些 Java 替代品。
显然,我发现很多说法是 Java 对玩家来说太慢了。从我读到的内容可以分为两个子问题:
首先,人们写到 Java 对视频解码太慢了。但是自从我开始使用Java以来,我一直认为它的速度实际上还不错。我发现许多基准测试在热 JVM 的表现几乎与 C++ 编写的程序一样好。喜欢真的很好。我认为这是因为那些基准算法很小且重复,所以 JVM 准备了编译的代码,并且从那里它很快。也许在更大的程序中,由于动态编译,它实际上会慢得多。我真的不知道。但是由于 Java 是由 JVM 编译成本机代码的,所以真正与速度有关的是多少代码以及它预编译的速度,对吧?当然还有其他区别,但最大的区别是实际编译。
其次,人们写道他们有用 C++ 编写的视频解码器,并通过 JNI 获取图片数据。但是他们说 Java 太慢了,甚至无法绘制那些 30 FPS 甚至 HD Ready 图像。但为什么?我一直认为 JVM 使用最快的方法在操作系统中获取它的窗口,而不是在内部操作它的内容。如果我在 JVM 被“加热”时认为 Java 足够快(意味着类似 C++),那么显示图像的问题在哪里?在这种情况下,JVM 所要做的就是将数组写入操作系统特定的显示输出,对吧?
那么,Java 真的很慢,还是我错过了什么?是否有可能用纯 Java 编写全速(或几乎全速)视频播放器?如果不是,为什么?谢谢。