Lire les métadonnées d'un média avec JavaFX
Le code suivant vous montre comment lire les métadonnées d'un fichier audio avec JavaFX.
import java.io.IOException;
import javafx.application.Application;
import javafx.collections.MapChangeListener;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.VBox;
import javafx.scene.media.Media;
import javafx.stage.Stage;
/**
* JavaFX App
*/
public class MetaDataExample extends Application {
private VBox metadataVBox = new VBox();
public static void main(String[] args) {
launch();
}
@Override
public void start(Stage stage) throws IOException {
ScrollPane root = new ScrollPane();
root.setContent(metadataVBox);
Scene scene = new Scene(root, 640, 480);
stage.setScene(scene);
/* Le media avec le chemin du fichier audio */
Media media = new Media("file:///chemin/vers/le/fichier.mp3");
/* Enregistrement du listener */
media.getMetadata().addListener(this::onMetadataChange);
/* Affiche la fenêtre */
stage.show();
}
/**
* Cette fonction est appelée lorsque les métadonnées sont initialisées ou
* changées
*/
private void onMetadataChange(MapChangeListener.Change<? extends String, ? extends Object> metadata) {
/* Si l'image de l'album est initialisée ou modifiée */
if (metadata.getKey().equals("image")) {
/* Récupération de la métadonnée image */
ImageView albumArt = new ImageView((Image) metadata.getValueAdded());
metadataVBox.getChildren().add(albumArt);
} else {
/* Récupération des autres métadonnées
* Affichage Clé: Valeur */
String formattedString = metadata.getKey() + ": " + metadata.getValueAdded();
metadataVBox.getChildren().add(new Label(formattedString));
}
}
}
Commentaires
Enregistrer un commentaire