2

我正在使用 JavaFX 构建简单的网络浏览器,但我发现在其中播放 youtube 视频存在一些问题。要重现该问题,只需运行以下简单代码:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class Main extends Application {
@Override
public void start(Stage primaryStage) {
    try {
        WebView root = new WebView();
        Scene scene = new Scene(root,400,400);
        primaryStage.setScene(scene);
        primaryStage.show();
        root.getEngine().load("http://youtube.com");
    } catch(Exception e) {
        e.printStackTrace();
    }
}

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

当我尝试播放 youtube 视频时,我发现它有时可以正常工作,但更多时候会显示消息“发生错误,请稍后再试”(使用同一部电影)。据我所知,JavaFX 使用 Webkit,因此在 Chrome/Firefox 中播放 youtube (html5) 视频或使用 WebView 之间应该没有太大区别。我尝试了 JRE 1.8.0、1.8.20 和两个不同的笔记本,但没有帮助。

当视频以某种方式开始工作时,会出现错误消息:

Outstanding resource locks detected:
D3D Vram Pool: 15 529 382 used (5,8%), 15 529 382 managed (5,8%), 268 435 456 total
41 total resources being managed
average resource age is 12.8 frames
0 resources at maximum supported age (0,000000)
10 resources marked permanent (24,400000)
3 resources have had mismatched locks (7,300000)
3 resources locked (7,300000)
15 resources contain interesting data (36,600000)
0 resources disappeared (0,000000)

所以我认为这两个问题可能与webview中的内存泄漏有关。我是对的还是您认为可能有其他解决方案可以解决这个问题?

4

0 回答 0