在JavaFX中观看Twitch直播流
我想做一个简单的JavaFX应用程序来观看Twitch直播流。在JavaFX中观看Twitch直播流,java,javafx,twitch,Java,Javafx,Twitch,我想做一个简单的JavaFX应用程序来观看Twitch直播流。 到目前为止,我提出了3种可能的解决方案: 1) javafxwebview。有了它,我成功地观看了Twitch剪辑视频,但直播似乎不受支持。 代码: 2) JavaFX scene.media包。我在JavaFX文档中发现了这个包:它声明支持HLS实时流媒体,但我发现加载任何Twitch频道都没有成功。 代码: 3) TwitchDevelopersAPI。到目前为止,在这里还没有找到任何关于使用Java的live stea
到目前为止,我提出了3种可能的解决方案:
1) javafxwebview。有了它,我成功地观看了Twitch剪辑视频,但直播似乎不受支持。
代码: 2) JavaFX scene.media包。我在JavaFX文档中发现了这个包:它声明支持HLS实时流媒体,但我发现加载任何Twitch频道都没有成功。
代码: 3) TwitchDevelopersAPI。到目前为止,在这里还没有找到任何关于使用Java的live steams的信息。
还有,是的,我在网上搜索过这个问题。例如,我发现了一个,但it OPs问题没有得到解决。对于第二个问题,您需要为它提供实时流(m3u8)的路径,而不是页面。@szatmary,您能提供一个这样的路径示例吗?只需查看浏览器调试工具中的“网络”选项卡并筛选m3u8文件。
public class App extends Application {
public static void main(String[] args) {
launch();
}
@Override
public void start(Stage stage) {
WebView webview = new WebView();
webview.getEngine().load(
"https://www.twitch.tv/stariy_bog/clip/RelievedPopularYakinikuDancingBanana"
);
WebView webView = new WebView();
webview.setPrefSize(640, 390);
stage.setScene(new Scene(webview));
stage.show();
}
}
public class MediaTest extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
String uri = "https://www.twitch.tv/qsnake";
try {
primaryStage.setTitle("Embedded Media Player");
Group root = new Group();
Scene scene = new Scene(root, 540, 210);
Media media = new Media(uri);
MediaPlayer mediaPlayer = new MediaPlayer(media);
mediaPlayer.setAutoPlay(true);
// create mediaView and add media player to the viewer
MediaView mediaView = new MediaView(mediaPlayer);
((Group) scene.getRoot()).getChildren().add(mediaView);
primaryStage.setScene(scene);
primaryStage.sizeToScene();
primaryStage.show();
mediaPlayer.setOnPlaying(() -> {
System.out.println(mediaPlayer.getMedia().getDuration().toString());
});
} catch (Exception ex) {
ex.printStackTrace();
}
}
}