我设法运行简单的JavaFx Webview应用程序在本地主机上运行一个html文件,运行在微服务Spark web framework在嵌入式jetty容器中使用我的问题是JavaFx Webview无法识别视频文件来源的html5视频标签,而使用铬,即,和其他主流浏览器页面完美呈现和视频文件正在工作。JavaFx Webview不在本地主机服务器上加载html5视频
我现在不是现在,如果它是一个错误,或者是我已经搞砸了东西。
这里是我的问题的工作卡:
工作区文件lyaout:
Workspace/Work-directory
.
├── public
| └── index.html
| └── video.mp4
└── src
└── main
| └── java
| └── com
| └── mycompany
| └── MainTest.java
| └── SparkTest.java
└── pom.xml
相关性(pom.xml中):
<dependency>
<groupId>com.sparkjava</groupId>
<artifactId>spark-core</artifactId>
<version>2.5</version>
</dependency>
SparkTest.java
package com.mycompany;
import spark.Spark;
public class SparkTest {
public static void main(String[] args) {
Spark.staticFiles.externalLocation("public");
Spark.get("/run", (request, response) -> "Spark is Runnig");
}
}
MainTest.java
package com.mycompany;
import java.io.IOException;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class MainTest extends Application {
@Override
public void start(Stage stage) throws Exception {
StackPane root = new StackPane();
WebView view = new WebView();
view.getEngine().load("http://127.0.0.1:4567/index.html");
root.getChildren().add(view);
Scene scene = new Scene(root, 800, 600);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) throws IOException {
Application.launch(args);
}
}
的index.html
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>html5 video</h1>
<video controls preload="auto" width="640" height="480">
<source src="video.mp4" type='video/mp4'>
</video>
</body>
</html>
here you can find .mp4 video file
我看不到你做一些错误;我自己尝试过,并且可以确认:当页面由spark提供时,它可以与普通浏览器一起使用,但不适用于JavaFx WebView。但是,当页面使用本地文件URI加载到WebView中时,视频将播放。所以WebView可以播放视频,在sparkjava/jetty和WebView之间的通信中必须有一些东西,但我还没有找到它可能是什么。 –