无法在不关闭整个程序的情况下关闭javafx应用程序

时间:2016-12-13 19:06:58

标签: java javafx webview

我在开发应用程序时遇到问题:基本上我有一个javafx应用程序" MainApp"它显示了一个youtube视频列表(带有一个tableview),双击一行调用了LecteurVideo类的play()方法(下面的代码)。这将启动辅助应用程序(在新窗口中),其中将使用webview显示匹配的视频。

我的问题是,当我关闭辅助应用程序(或辅助窗口)时,窗口关闭但音频仍在运行。我发现的唯一解决方法是在关闭视频时关闭MainApp。但那不是我想做的事。

package proj;

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
import proj.view.ShowResultsController;
import javafx.application.Platform;

public class LecteurVideo extends Application {    

    private String url; 

    public LecteurVideo(String url){
        this.url = url;

    }

    public void play(){
        launch();
    }

  public void start(Stage stage) throws Exception {

    WebView webview = new WebView();
    webview.getEngine().load(url);
    webview.setPrefSize(640, 390);
    stage.setScene(new Scene(webview));
    stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
        @Override
        public void handle(WindowEvent event) {
            Platform.exit();
        }
        });
    stage.show();

  }

}

.setOnCloseRequest()是我在寻找解决我的初始问题时在线找到的修复工具。

总结一下:我想要的是能够关闭视频播放器窗口而不关闭整个应用程序但仍然关闭音频。

感谢您的时间。

1 个答案:

答案 0 :(得分:3)

要停止视频,您可能需要从网络视图中卸载内容。您可以使用

在窗口的关闭处理程序中执行此操作
webView.getEngine().load(null);