我如何在javafx视频播放器中使用Gstreamer?

时间:2014-11-16 16:32:53

标签: javafx-8

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

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);

           }
        });



    }


}

1 个答案:

答案 0 :(得分:0)

旧话题,但今天绊脚石提出了gstreamer-java repo on GitHub。已经有几年了但是最近有新的gst1-java和gst1-java-fx项目。如11天前更新。尝试这些示例,看看它们是否可以接受其他电影格式将是很有趣的。但是看来文档很少。

另一种选择是使用ffmpeg或手刹将视频重新混合为另一种容器格式。