用于在Swing应用程序中嵌入电影的任何简单(和最新)Java框架?
我正在构建一个小型Swing应用程序,我想在其中嵌入一部电影。 重要的是,这个应用程序是一个WebStart应用程序 – 该库应该能够打包在我启动的jnlp中,而不依赖于本机库。
我知道并尝试过JMF,但与其他框架相比,我认为格式兼容性相对较差。
有人可以使用他们推荐的库提供简单实现的示例代码片段吗?
提前谢谢了。
JavaFX作为基于Java的媒体播放框架的解决方案的一些注意事项。
- 从Jdk7u4开始,JavaFX与用于Mac和Windows的jdk(XP,Vista,7,32和64位)共同捆绑在一起。
- JavaFX可以嵌入Swing应用程序中。
- JavaFX包含本机库,但任何Java Framework都需要本机库才能很好地完成video。
- JavaFX SDK包含一个全面的部署工具包和/或包括生成基于jnlp的部署的function。
- JavaFX 2.1支持vp6编码的flvs(旧格式)以及一些更现代和常用的编码格式,如mp4 / aac / mp3。
- JavaFX仅支持有限的媒体编解码器和容器格式,例如,如果您的计算机上安装了编解码器,并且可以播放以该格式编码的文件,例如Chrome,Windows媒体播放器或不保证同一文件将使用的闪存在JavaFX中玩。
- 在XP或Linux上播放mp4需要用户手动安装必要的编解码器,但其他平台(osx,win7,vista)不需要手动安装mp4编解码器。
- 在Mac上使用JavaFX要求用户使用OpenJDK 7 for Mac,而不是Apple JDK。
- JavaFX对Mac上jnlp启动的应用程序的支持将在今年晚些时候(2012年)推出,并且类似于Linux。
- 您可以将整个JavaFX平台与您的应用程序捆绑在一个jnlp中(尽管我还没有看到任何人这样做)。
- jnlp部署的推荐方法是向jnlp添加最小JavaFX环境的规范,并让JavaFX部署工具包和webstart负责确保它在用户的计算机上存在并正确安装。
- Swing和JavaFX之间的交互需要一些不便和关心线程,以及在Swing和JavaFX之间稍微不同的应用程序启动代码。 有些人在论坛上抱怨过,大多数人似乎没有太多问题。
- 无论好坏(我相信更好),JavaFX可能是Oracle唯一正在接受持续主要开发和新function的媒体和客户端开发框架。
- 最终(今年或下一年)JavaFX将包含在运行现代版Java SE的所有主要消费者平台的所有新Java运行时中。
- Oracle和第三方对JavaFX开发的社区支持(我相信)很好。
这是一个播放video的示例JavaFX应用程序:
import javafx.application.Application; import javafx.scene.*; import javafx.scene.media.*; import javafx.stage.Stage; public class VideoPlayerExample extends Application { public static void main(String[] args) throws Exception { launch(args); } @Override public void start(final Stage stage) throws Exception { final MediaPlayer oracleVid = new MediaPlayer( new Media("http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv") ); stage.setScene(new Scene(new Group(new MediaView(oracleVid)), 540, 208)); stage.show(); oracleVid.play(); } }
虽然我对JMF的格式兼容性没有任何问题,但您可以查看旨在成为Flash竞争对手的JavaFX,因此应该支持所有媒体格式和编解码器。 你也可以使用JNI / JNA将Flash播放器嵌入到java应用程序中,但它似乎太复杂了。 我建议您从JMF开始,只有在遇到问题时才寻找其他解决方案。
..已经尝试过JMF,但与其他框架相比,我认为格式兼容性相对较差。
你对现代编解码器缺乏支持是正确的,但它适用于较旧的编解码器。 如果:
- 您可以控制格式(而不是用户在其中打开“任何旧video”)。 你显然做的。
- 带宽不是一个大问题。 更现代的编解码器显着改善了压缩。
虽然使用本机的JMF的“性能包”版本支持更多格式,但核心Java JMF API也提供了一些基本格式。