2016-10-10 1 views
1

Ma question est si oui ou non Youtube-Livestreams peut être joué en utilisant JDK 8u102. En utilisant le WebView, il est facilement possible de lire des vidéos Youtube (VoD). Exemple:Lecture de Youtube-LiveStreams avec JavaFX 8

package application; 

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 embeddedWV = new WebView(); 
      embeddedWV.getEngine().load(
      "https://www.youtube.com/embed/oyA8odjCzZ4" 
      ); 
      embeddedWV.setPrefSize(640, 400); 
      Scene scene = new Scene(embeddedWV); 
      primaryStage.setScene(scene); 
      primaryStage.show(); 
     } catch(Exception e) { 
      e.printStackTrace(); 
     } 
    } 

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

Mais cette approche ne fonctionne pas pour-flux en direct tels que https://youtu.be/opHkchLbYR4. Une erreur indique que WebM VP8, Extensions Source Média, MSE & H.264 et MSE & WebM VP9 ne sont pas pris en charge par mon "navigateur"/application. Une approche, qui a fonctionné (mais a eu des performances terribles) a été décrite here, mais c'est une approche pour Swing, pas JavaFX8. C'est encore une preuve de concept qui montre qu'il est possible de jouer les Streams dans Java-Applications. J'ai également lu this, mais il est 1. pour Android/IOS et 2. se réfère seulement à l'API Youtube-Life, qui ne répond pas réellement à la question et semble être un peu exagéré pour ce que j'essaie d'accomplir.

Ma question est la suivante: est-il en quelque sorte possible de lire les livestreams diffusés par Youtube dans une application JavaFX 8? Si ce n'est pas nativement possible, existe-t-il des bibliothèques externes pour atteindre un tel objectif?

Répondre

0
public void start(Stage primaryStage) { 
     StackPane root = new StackPane(); 
     Scene scene = new Scene(root, 640, 400); 
     primaryStage.setScene(scene); 
     WebView embeddedWV = new WebView(); 
     embeddedWV.getEngine().load(
     "https://www.youtube.com/embed/oyA8odjCzZ4" 
      ); 
      embeddedWV.setPrefSize(640, 400); 
      root.getChildren().add(embeddedWV); 

      primaryStage.setScene(scene); 
      primaryStage.show(); 
    } 
+2

Les réponses seulement au code ne sont pas comptées comme meilleures réponses, veuillez inclure quelques explications –