gpt4 book ai didi

java - 无法使用 javaFx Webview 在网页中显示视频(视频在给定的 url 上实时显示)

转载 作者:行者123 更新时间:2023-12-01 17:06:35 29 4
gpt4 key购买 nike

我正在尝试在 JavaFX Webview 中显示实时网页。网页包含视频,但该视频未在 javaFX webview 中播放。

以下是我正在使用的完整代码,它还包含我网页的实时网址。我希望在我的 JavaFX Web View 中应该通过显示的实时网页播放视频。

package webviewbrowser;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.util.List;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.HPos;
import javafx.geometry.Insets;
import javafx.geometry.VPos;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.ColumnConstraints;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class WebViewBrowser extends Application {

@Override public void start(Stage primaryStage) throws Exception {
Pane root = new WebViewPane();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
double width = screenSize.getWidth();
double height = screenSize.getHeight();
primaryStage.setScene(new Scene(root, width, height));
primaryStage.show();
}

public static void main(String[] args) {
launch(args);
}

public class WebViewPane extends Pane {

public WebViewPane() {
VBox.setVgrow(this, Priority.ALWAYS);
setMaxWidth(Double.MAX_VALUE);
setMaxHeight(Double.MAX_VALUE);

WebView view = new WebView();
view.setMinSize(500, 400);
view.setPrefSize(500, 400);
final WebEngine eng = view.getEngine();
try
eng.load("http://techyadesh.com/video.php");
}
catch(Exception ex)
{

}

GridPane grid = new GridPane();
grid.setVgap(5);
grid.setHgap(5);
GridPane.setConstraints(view, 0, 1, 2, 1, HPos.CENTER, VPos.CENTER, Priority.ALWAYS, Priority.ALWAYS);
grid.getColumnConstraints().addAll(
new ColumnConstraints(100, 100, Double.MAX_VALUE, Priority.ALWAYS, HPos.CENTER, true),
new ColumnConstraints(40, 40, 40, Priority.NEVER, HPos.CENTER, true)
);
// grid.getChildren().addAll(locationField, goButton, view);
grid.getChildren().addAll( view);
getChildren().add(grid);
}

@Override protected void layoutChildren() {
List<Node> managed = getManagedChildren();
double width = getWidth();
double height = getHeight();
double top = getInsets().getTop();
double right = getInsets().getRight();
double left = getInsets().getLeft();
double bottom = getInsets().getBottom();
for (int i = 0; i < managed.size(); i++) {
Node child = managed.get(i);
layoutInArea(child, left, top,
width - left - right, height - top - bottom,
0, Insets.EMPTY, true, true, HPos.CENTER, VPos.CENTER);
}
}
}

}

最佳答案

你写的看起来效果很好。我在 javafx 13 上尝试过,它成功了。在将其粘贴到 stackoverflow 中时,您在几个地方漏掉了括号。除此之外我没有看到任何错误。只需升级你的 javafx 就可以了。

这是一个包含您的确切代码的工作示例

https://github.com/shashaanktulsyan/java-javafx-maven-learning-tips/tree/master/nu-sharabheshwara-adesh_singh-webview

mvn javafx:ru​​n应该简单地工作。

关于java - 无法使用 javaFx Webview 在网页中显示视频(视频在给定的 url 上实时显示),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61460446/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com