我正在构建一个小型 Swing 应用程序,我想在其中嵌入一部电影。重要的是,这个应用程序是一个 WebStart 应用程序——并且该库应该能够打包在我启动的 jnlp 中——即,不依赖于本机库。
我知道并尝试过 JMF,但与其他框架相比,我认为格式兼容性相对较差。
有人可以使用他们推荐的库提供一个简单实现的示例代码片段吗?
提前谢谢了。
JavaFX 作为基于 Java 的媒体播放框架的解决方案的一些注意事项。
这是一个播放视频的示例 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 格式兼容性方面没有任何问题,但您可以查看 JavaFX,它旨在成为 Flash 的竞争对手,因此应该支持所有媒体格式和编解码器。您还可以使用 JNI/JNA 将 Flash 播放器嵌入到 Java 应用程序中,但这似乎太复杂了。我建议您从 JMF 开始,仅在您确实遇到问题时才寻找其他解决方案。
..已经尝试过 JMF,但与其他框架相比,我认为格式兼容性相对较差。
您对现代编解码器缺乏支持是正确的,但它适用于旧编解码器。如果出现以下情况,这可能是一个可行的选择:
虽然使用本机的 JMF 的“性能包”版本支持更多格式,但核心 Java JMF API 也提供了一些基本格式。