【问题标题】:how can i use Gstreamer in javafx videoplayer?如何在 javafx 视频播放器中使用 Gstreamer?
【发布时间】:2020-02-26 18:02:03
【问题描述】:

这是 javafx 中的视频播放器。我们如何支持 mkv、vob、avi 等扩展? 这可以在 javafx 中使用 gstreamer 来支持其他扩展吗? 我们如何使用 gstreamer 或者如果没有那么请说任何其他方式来使视频播放器支持其他扩展...

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Slider;
import javafx.scene.layout.VBox;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.scene.paint.Color;
import javafx.stage.Stage;


public class MoviePlayer extends Application {

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

    @Override
    public void start(Stage arg0) throws Exception {

    final Stage stage=new Stage();
    stage.setTitle("Video Player");
    Group root = new Group();
    Media media = new Media("file:///C:/Users/vi/downloads/Video/a.mp4");
    final MediaPlayer player=new MediaPlayer(media);
    MediaView view=new MediaView(player);

    //  System.out.println("media.Width"+media.getWidth());

    final VBox vbox=new VBox();
    Slider slider=new Slider();


    root.getChildren().add(view);
    root.getChildren().add(vbox);
    root.getChildren().add(slider);

    Scene scene=new Scene(root, 400,400,Color.BLACK);
    stage.setScene(scene);
    stage.show();

    player.play();
    player.setOnReady(new Runnable() {

        @Override
        public void run() {
            int w=player.getMedia().getWidth();
            int h=player.getMedia().getHeight();

            stage.setMinWidth(w);
            stage.setMinHeight(h);

            vbox.setMinSize(w,100 );
            vbox.setTranslateY(h);

           }
        });



    }


}

【问题讨论】:

  • JavaFX 中的媒体播放功能并不打算由框架的用户扩展。如果您愿意自己构建 JavaFX,可以查看this article。 IMO,更现实的解决方案是完全使用另一个媒体播放库,例如 vlcj,它已经支持多种媒体格式(但它不会像 JavaFX 的 MediaPlayer 那样易于使用)。

标签: javafx-8


【解决方案1】:

老话题,但今天偶然发现了一个gstreamer-java repo on GitHub。它有几年的历史了。但最近那里有新的 gst1-java 和 gst1-java-fx 项目。如 11 天前更新。尝试这些示例并查看它们是否可以接受其他电影格式会很有趣。但看起来文档很少。

另一种选择是使用 ffmpeg 或 handbrake 将视频重新组合成另一种容器格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    相关资源
    最近更新 更多