JavaFX vlcj - lecture d'un DVD

Maven vlcj / javafx-vlcj

La deuxième dépendance sert à rendre compatible JavaFX et vlcj

<dependency>
	<groupId>uk.co.caprica</groupId>
	<artifactId>vlcj</artifactId>
	<version>4.7.1</version>
</dependency>
<dependency>
	<groupId>uk.co.caprica</groupId>
	<artifactId>vlcj-javafx</artifactId>
	<version>1.0.3</version>
</dependency>

Code Java - JavaFX et vlcj

import static uk.co.caprica.vlcj.javafx.videosurface.ImageViewVideoSurfaceFactory.videoSurfaceForImageView;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import uk.co.caprica.vlcj.factory.MediaPlayerFactory;
import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;

/**
 * JavaFX App
 */
public class App extends Application {

  /*
   * Le lecteur de média. Pour éviter le garbage collector
   */
  private EmbeddedMediaPlayer embeddedMediaPlayer;

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

  @Override
  public final void start(Stage primaryStage) throws Exception {

    // L'élément racine dans la scène
    BorderPane root = new BorderPane();

    // La factory pour créer le lecteur de média
    MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory();
    // Création du lecteur
    embeddedMediaPlayer = mediaPlayerFactory.mediaPlayers().newEmbeddedMediaPlayer();

    // La vue où va s'afficher la vidéo
    ImageView videoImageView = new ImageView();

    // La vidéo au centre de l'élément racine
    root.setCenter(videoImageView);

    // La vidéo s'affiche dans l'imageview
    embeddedMediaPlayer.videoSurface().set(videoSurfaceForImageView(videoImageView));

    Scene scene = new Scene(root, 800, 600, Color.BLACK);
    primaryStage.setScene(scene);
    primaryStage.show();

    // Lecture du média DVD du lecteur E, titre #3
    embeddedMediaPlayer.media().play("dvd:///e:#3");

  }

}

Commentaires