电脑软件和网站怎么做,wap网站和app的区别,网站怎么做分类聚合,长阳网站建设在Java中播放视频可以使用多种方案#xff0c;最常见的是通过Swing组件JFrame和JLabel来嵌入JMF(Java Media Framework)或Xuggler。不过#xff0c;JMF已经不再被推荐使用#xff0c;而Xuggler是基于DirectX的#xff0c;不适用于跨平台。而且上述方案都需要使用第三方库。…在Java中播放视频可以使用多种方案最常见的是通过Swing组件JFrame和JLabel来嵌入JMF(Java Media Framework)或Xuggler。不过JMF已经不再被推荐使用而Xuggler是基于DirectX的不适用于跨平台。而且上述方案都需要使用第三方库。
在JDK 8.0版本中一个最简单的视频播放器跨平台解决方案是使用JavaFX它提供了MediaPlayer类来播放视频。
JavaFX 最初是由 Oracle 推出的一个用于开发富客户端应用程序的框架它提供了丰富的用户界面控件、布局容器、3D图形绘制、媒体播放和动画等功能旨在取代较旧的 Swing 框架。JavaFX 于 2007 年推出2011 年 10 月发布了2.0 版本。JavaFX 2.0 的一个优点是适用于跨平台而且可以完全用 Java 语言编写代码。
2014年发布的JDK 8.0就包含了JavaFx 2.0 版本。然而随着时间的发展和技术的变迁JavaFx 2.0并未达到预期目标而且在与其他的技术标准竟争中处于下风。从 JDK 11 开始Oracle 决定不再将 JavaFX 包含在 JDK 中如有需要JavaFX必须单独下载和使用。 尽管如此JavaFX 仍然是一个强大的开发工具开发者可用它来设计、编写、测试、调试和部署富客户端程序支持跨平台使用。
以下是在JDK 8.0版本使用JavaFX实现视频播放器的例程
import java.io.File;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;
public class SimpleVideoPlayer extends Application {private static final String PATH D:/Temp/太极拳.mp4; Overridepublic void start(Stage stage) {// 创建媒体播放器Media media new Media(new File(PATH).toURI().toString());MediaPlayer mediaPlayer new MediaPlayer(media);mediaPlayer.setAutoPlay(true); // 设置自动播放// 创建媒体视窗MediaView mediaView new MediaView(mediaPlayer);// 创建根框架窗口布局StackPane root new StackPane();root.getChildren().add(mediaView);// 创建场景Scene scene new Scene(root, 800, 600);// 设置舞台stage.setScene(scene);stage.setTitle(最简视频播放器);stage.show();}public static void main(String[] args) {launch(args);}
}
在上面的代码中我们首先创建了一个媒体Media对象其中PATH表示视频文件的路径。然后我们创建了一个媒体播放器MediaPlayer对象并将媒体Media对象作为参数传入。接下来我们创建了一个MediaView对象用于显示视频内容。然后我们创建了一个根框架窗体和场景并将MediaView添加到场景中。最后我们设置舞台。通过设置MediaPlayer的自动播放功能来播放视频。
下面是播放页面的截屏 说明 很多博文都认为JavaFX支持多种视频格式包括常见的MP4、AVI、FLV等格式。下面是我的测试情况MP4格式的视频是能播放但有一些MP4视频未显示图像也没报错原因未知。测试了AVI、RMVB格式的视频都不能正常播放报“不支持的格式”例外错误。