2016-12-13 142 views
2

我遇到了一个应用程序问题,我正在开发:基本上我有一个javafx应用程序“MainApp”,它显示了一个youtube视频列表(带有tableview)单击一行即可调用LecteurVideo类的play()方法(以下代码)。这将启动一个辅助应用程序(在新窗口中),在该应用程序中将使用web视图显示匹配的视频。无法关闭javafx应用程序而不关闭整个程序

我的问题是,当我关闭辅助应用程序(或辅助窗口)窗口关闭,但音频仍在运行。我发现的唯一解决方法是在关闭视频时关闭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()是我在网上找到的一个修复程序,同时寻找解决方案来解决我最初的问题。

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

谢谢你的时间。

+0

工作,我觉得很愚蠢。我发誓,我花了一个小时在网上寻找答案,并没有看到这一次。尽管非常感谢你 –

回答

3

要停止视频,您可能需要从网络视图中卸载内容。你可以在窗口的关闭处理程序中做到这一点

webView.getEngine().load(null);