Полноэкранное видео в JavaFx с использованием тега HTML5 video - PullRequest
1 голос
/ 14 октября 2019

Я создаю приложение, в котором мне нужно воспроизвести видео. Я использую HTML5 <video>.

Видео воспроизводится нормально, однако я не могу получить полноэкранный режим в панели управления видео. Я получаю кнопку воспроизведения / паузы, панель поиска, но не кнопку полного экрана и кнопку загрузки, которые доступны по умолчанию в теге <video>. Хотя кнопка загрузки мне не нужна, мне нужна полноэкранная кнопка.

Вот мой код:

App.java :

import java.io.File;

import javafx.application.Application;
import javafx.concurrent.Worker;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.layout.StackPane;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import netscape.javascript.JSObject;

public class App extends Application  {

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

    @Override
    public void start(Stage stage) throws Exception {
        // TODO Auto-generated method stub
        System.out.println("JavaFX Browser Loaded [OK]");
        StackPane root = new StackPane();
        WebView webView = new WebView();
        WebEngine webEngine = webView.getEngine();
        webEngine.load("file:///"+System.getProperty("user.dir")
                + File.separatorChar+"folder"
                +File.separatorChar+"index.html");

        webEngine.getLoadWorker().stateProperty().addListener((obs, oldState,       newState) -> {
            if (newState == Worker.State.SUCCEEDED) {
                JSObject window = (JSObject) webEngine.executeScript("window");
            }
        });

        webEngine.getLoadWorker().stateProperty().addListener((obs, oldState,       newState) -> {
            if (newState == Worker.State.SUCCEEDED) {
                JSObject window = (JSObject) webEngine.executeScript("window");
            }
        });

        root.getChildren().add(webView);

        Scene scene = new Scene(root,800,600);
        String path = System.getProperty("user.dir");
        path = path.replace("\\", "/");
        stage.getIcons().add(new Image("file:///"+path + "\\logo.jpg"));

        stage.centerOnScreen();
        stage.setScene(scene);
        stage.show();

//        stage.setOnCloseRequest(e -> System.exit(0));
        stage.setOnCloseRequest(e -> {
            System.out.println("System Is Closing");
            System.exit(0);
        });
    }
}

Index.html :

<!DOCTYPE html> 
<html> 
<body> 

<video width="400" controls>
  <source src="mov_bbb.mp4" type="video/mp4">
  <source src="mov_bbb.ogg" type="video/ogg">
  Your browser does not support HTML5 video.
</video>

</body> 
</html>

Вот изображение игрока, которое я получаю:

enter image description here

Как видите, полноэкранная кнопка отсутствует. Пожалуйста, помогите мне. Не знаю, где я иду не так. Спасибо.

...