我正在构建一个小型 Swing 应用程序,我想在其中嵌入一部电影。重要的是,这个应用程序是一个 WebStart 应用程序 - 并且该库应该能够打包在我启动的 jnlp 中 - 即,不依赖于本机库。
我知道并尝试过 JMF,但我认为与其他框架相比,其格式兼容性相对较差。
有人可以提供使用他们推荐的库的简单实现的示例代码片段吗?
提前谢谢了。
将 JavaFX 作为基于 Java 的媒体播放框架的解决方案的一些注意事项。
- 从 Jdk7u4 开始,JavaFX 与适用于 Mac 和 Windows 的 jdk 共同捆绑
(XP、Vista、7、32 和 64 位)。
- JavaFX 可以嵌入到 Swing 应用程序中。
- JavaFX 包含本机库,但任何 Java 框架都需要本机库才能很好地处理视频。
- JavaFX SDK 中包含一个全面的部署工具包和/或包含生成基于 jnlp 的部署的功能。
- JavaFX 2.1 支持 vp6 编码的 flv(旧格式)以及一些更现代和常用的编码格式,例如 mp4/aac/mp3。
- JavaFX 仅支持有限的媒体编解码器和容器格式,例如如果您的计算机上安装了编解码器,并且可以在 Chrome、Windows Media Player 或 Flash 等中播放以该格式编码的文件,则不保证相同的文件将在 JavaFX 中播放。
- 在 XP 或 Linux 上播放 mp4 需要用户手动安装必要的编解码器,但其他平台(osx、win7、vista)不需要手动安装 mp4 编解码器。
- 在 Mac 上使用 JavaFX 要求用户使用 OpenJDK 7 for Mac,而不是 Apple JDK。
- JavaFX 对 jnlp 在 Mac 上启动的应用程序的支持要到今年晚些时候(2012 年)才会提供,对于 Linux 也是如此。
- 您可能可以将整个 JavaFX 平台与您的应用程序捆绑在 jnlp 中(尽管我还没有看到有人这样做)。
- jnlp 部署的推荐方法是向 jnlp 添加最低 JavaFX 环境的规范,并让 JavaFX 部署工具包和 Webstart 负责确保它存在并正确安装在用户的计算机上。
- Swing 和 JavaFX 之间的交互需要一些不便,需要关心线程,并且 Swing 和 JavaFX 之间的应用程序启动代码略有不同。有些人在论坛上抱怨过这一点,但大多数人似乎没有遇到太多问题。
- 无论好坏(我认为更好),JavaFX 可能是 Oracle 唯一正在接受重大开发和新功能的媒体和客户端开发框架。
- 最终(今年或明年)JavaFX 将包含在运行现代版本 Java SE 的所有主要消费平台的所有新 Java 运行时中。
- Oracle 和第三方对 JavaFX 开发的社区支持(我相信)很好。
下面是一个播放视频的 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();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)