Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package javafxwebviewcrasher;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import javafx.application.Application;
- import javafx.application.Platform;
- import javafx.geometry.Pos;
- import javafx.scene.Scene;
- import javafx.scene.layout.HBox;
- import javafx.scene.layout.StackPane;
- import javafx.scene.web.WebEngine;
- import javafx.scene.web.WebView;
- import javafx.stage.Stage;
- public class JavaFXWebViewCrasher extends Application {
- private HBox mainHolder = new HBox();
- @Override
- public void start(Stage primaryStage) {
- StackPane root = new StackPane();
- root.setAlignment(Pos.CENTER);
- root.getChildren().add(mainHolder);
- Scene scene = new Scene(root, 1200, 300);
- primaryStage.setScene(scene);
- primaryStage.show();
- final JavaFXWebViewCrasher thisCrasher = this;
- new Thread("youTubeControllerThread") {
- public void run() {
- while (true) {
- try {
- Platform.runLater(new Runnable() {
- @Override
- public void run() {
- thisCrasher.clearAndSetYoutube();
- }
- });
- Thread.sleep(1000 * 30);
- } catch (InterruptedException ex) {
- Logger.getLogger(JavaFXWebViewCrasher.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- }
- }.start();
- }
- private void clearAndSetYoutube() {
- mainHolder.getChildren().clear();
- String youtubeEmbedString =
- "<!DOCTYPE html>"+
- "<html>"+
- " <body style='text-align:center;background-color:black;color:white;overflow-y:hidden;overflow-x:hidden;'>" +
- " <div id='mainHolder'>"+
- " <iframe width='366' height='196' id='player' frameborder='0' src='http://www.youtube.com/embed/G_GBwuYuOOs?enablejsapi=1&wmode=transparent&hd=1&iv_load_policy=3&modestbranding=1&loop=1&playlist=G_GBwuYuOOs&showinfo=0&rel=0&controls=0'></iframe>" +
- " </div>" +
- " <script>" +
- " var tag = document.createElement('script');"+
- " tag.src = 'https://www.youtube.com/iframe_api';"+
- " var firstScriptTag = document.getElementsByTagName('script')[0];"+
- " firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);" +
- " var player;"+
- " function onYouTubeIframeAPIReady() {"+
- " player = new YT.Player('player', {"+
- " events: {"+
- " 'onReady': onPlayerReady," +
- " 'onStateChange': onPlayerStateChange," +
- " 'onError': onPlayerError"+
- " }" +
- " });"+
- " }" +
- " function onPlayerError(errorCode) {" +
- " alert('yt error is '+errorCode.data);" +
- " }" +
- " function onPlayerReady(event) {" +
- " event.target.setVolume(0);" +
- " player.setVolume(0);" +
- " player.playVideo();" +
- " player.mute();" +
- " }" +
- " function onPlayerStateChange(event) {" +
- " }" +
- " </script>"+
- " </body>"+
- "</html>";
- for (int i = 0; i < 5; i++) {
- WebView webView = new WebView();
- WebEngine webEngine = webView.getEngine();
- webEngine.loadContent(youtubeEmbedString);
- mainHolder.getChildren().add(webView);
- }
- }
- public static void main(String[] args) {
- launch(args);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement