2

I have a MediaView on the scene in which I am trying to play the selected video. The video is playing, I can hear the sound, but it's not visible.

here's my code:

playLocalVideo.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {
        File fileToPlay = null;
        //DirectoryChooser directoryChooser = new DirectoryChooser();
        FileChooser fileChooser = new FileChooser();
        fileChooser.setTitle("Select Files to Upload");
        FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("VIDEO files (*.mp4)", "*.mp4");
        fileChooser.getExtensionFilters().add(extFilter);
        fileChooser.setInitialDirectory(new File(System.getProperty("user.home")));
        try {
            fileToPlay = fileChooser.showOpenDialog(stage).getCanonicalFile();
            Media m = new Media(fileToPlay.toURI().toString());
            MediaPlayer mp = new MediaPlayer(m);
            videoPlayer = new MediaView(mp);
            videoPlayer.setPreserveRatio(true);

            mp.play();

        } catch (IOException ex) {
            Logger.getLogger(TutorControlPanelController.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

});

2 Answers2

3

Sorted: instead of:

videoPlayer = new MediaView(mp);

You should do:

videoPlayer.setMediaPlayer(mp);
0

I had the same issue that audio is playing but no video is playing when MP4 file used code MPEG-4. After I changed the codec to H.264 the video became playing correct.