2016-10-10 51 views
1

我的问题是如果或者不是Youtube-Livestreams可以使用JDK 8u102播放。使用WebView,可以轻松播放Youtube视频(VoD)。 例子:使用JavaFX播放Youtube-LiveStream 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); 
    } 
} 

但这种方法不适用于实况流,如https://youtu.be/opHkchLbYR4工作。一个错误指出WebM VP8,媒体源扩展,MSE & H.264和MSE & WebM VP9不支持我的“浏览器”/应用程序。 一种方法,工作(但有可怕的表现)被描述为here,但这是一个Swing的方法,而不是JavaFX8。它仍然是一个概念证明,表明可以在Java应用程序中播放Streams。我也读this,但它是1. Android/IOS和2.只是指Youtube-Life API,它实际上并没有回答这个问题,似乎有点矫枉过正,我试图完成。

我的问题是:在JavaFX 8应用程序中播放由Youtube播放的直播流是否可以播放?如果它本身不可行,是否有外部库来实现这一目标?

回答

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

仅将代码答案视为最佳答案,请包括一些解释 –