IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Retrouver les attributs d'un MP3 (auteur, album, titre,etc.) par le langage Java


Sujet :

Langage Java

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    605
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 605
    Points : 670
    Points
    670
    Par défaut Retrouver les attributs d'un MP3 (auteur, album, titre,etc.) par le langage Java
    Bonjour,

    J'ai besoin de classer des chansons qui sont sur mon iPod, et j'ai fait un petit programme Java pour récupérer les descriptions étendues des fichiers : c'est là que je pensais trouver les informations sur le titre et l'auteur de mes fichiers mp3.

    Première tentative :
    Malheureusement, le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UserDefinedFileAttributeView attributs = Files.getFileAttributesView(fichier, UserDefinedFileAttributeView.class);
     
    if (attributs == null)
        return;
     
    attributs.list().forEach(attribut -> attribut.toString());
    échoue lorsqu'il énumère un fichier situé sur H:/iPod_Control/Music/F00 * sur une FileSystemException avec le message lapidaire "Paramètre incorrect." à hauteur de l'instruction attributs.list().forEach(attribut -> attribut.toString());, mais il réussi si je copie ce même fichier sur mon disque dur local.
    La variable attributs est bien alimentée d'une liste de WindowsUserDefinedFileAttributeView, mais visiblement l'accès unitaire ses éléments par le forEach montre que ce que cette liste énumère est invalide.

    * mon iPod en se connectant s'attribue le lecteur H:

    Deuxième tentative :

    Certains sur Internet évoquent un :SummaryInfomation qu'il faut préfixer à son nom de fichier en ouvrant un FileInputStream...
    ...qui deviendrait un stream alternatif et permettrait d'accéder aux metadata,
    mais je n'ai pas réussi à faire fonctionner ce qu'ils disaient.

    Troisième tentative :

    En utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AudioFileFormat audioFileFormat = AudioSystem.getAudioFileFormat(file);
    de Java.

    mais parmi les formats de fichiers audio qu'il reconnaît, se trouve le .WAV, mais pas le MP3.

    Quatrième tentative (en cours) :

    par les classes du package javafx.scene.media maintenant intégré à Java 8.


    Si vous connaissez la bonne solution, je suis preneur ! Merci !

  2. #2
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Tu peux regarder du côté de la libraire tika ( http://tika.apache.org/index.html ) qui devrait te permettre d'accéder à ces informations
    Je ne suis pas mort, j'ai du travail !

  3. #3
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 072
    Points : 7 974
    Points
    7 974
    Par défaut
    Ou ça eventuellement : http://www.jthink.net/jaudiotagger/
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    605
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 605
    Points : 670
    Points
    670
    Par défaut
    Merci à vous !

    Je viens d'y parvenir à l'aide de JavaFX, ce qui m'évite d'avoir à intégrer une API tierce partie.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Media media = new Media(file.toURI().toString());
    MediaPlayer player = new MediaPlayer(media);
     
    player.setOnReady(new Runnable() {
    	@Override
    	public void run() {
    		for (Map.Entry<String, Object> entry : media.getMetadata().entrySet()) {
    			System.out.println(entry.getKey() + ": " + entry.getValue());
    		}
    	}
    });
    Le player.setOnReady(...) est une déclaration d'eventListener pour réagir au moment où JavaFX aura interprété le contenu du fichier et se sentira en capacité de le lire.
    En effet, le seul code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Media media = new Media(file.toURI().toString());
    MediaPlayer player = new MediaPlayer(media);
    ne lui fait pas savoir immédiatement le contenu de la source qu'on lui soumet. Il lui faut quelque temps.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6] Upload fichier xls qui échoue (missing css file)
    Par pom dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 28/06/2006, 15h10
  2. un fichier par classe
    Par CaptainChoc dans le forum Général Python
    Réponses: 11
    Dernier message: 20/05/2006, 20h29
  3. Réponses: 3
    Dernier message: 02/10/2005, 13h30
  4. [File] Le fichier ne se crée pas
    Par Kyti dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 18/07/2005, 12h22
  5. execution d'un prog avec des fichiers multi-class
    Par Ice-B dans le forum Général Java
    Réponses: 2
    Dernier message: 05/08/2004, 12h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo