2010-01-05 12 views
3

J'analyse des fichiers mp3 de la musique. Ce que je fais est d'extraire les données audio du fichier et la similarité de la musique informatique.Java Media Framework: extraire les informations audio du fichier mp3

Je me sers de javazoom pour gérer les fichiers mp3. En utilisant audioFormat j'extraire les données brutes du fichier mp3:

byte[] audioBytes = new byte[numBytes]; 
in_format_init = AudioSystem.getAudioInputStream(musicFile); 
AudioFormat formatInit = in_format_init.getFormat(); 
AudioFormat formatFinal = new AudioFormat(
      AudioFormat.Encoding.PCM_SIGNED, 
      formatInit.getSampleRate(), 
      16, 
      formatInit.getChannels(), 
      formatInit.getChannels()*2, 
      formatInit.getSampleRate(), 
      false); 
AudioInputStream streamIn = AudioSystem.getAudioInputStream(formatFinal,  in_format_init); 
while (((numBytesRead = streamIn.read(audioBytes)) != -1)) 
{...} 

En faisant cela, je stocke les données audio (sans en-têtes ou balises) dans audioBytes et les informations stockées dans le tableau est traité.

Ma question est la suivante: est-il pour extraire l'es posible informations audio à partir d'un fichier audio mp3 et l'enregistrer comme je le fais dans mon exemple? J'ai lu sur JMF, mais c'est confus pour moi.

Merci.

Répondre

3

Je viens d'avoir un coup d'œil à l'API JMF donc je ne suis pas 100% sûr que ce sera correct ou même travailler du tout, mais essayer quelque chose comme ceci:

try { 
    File f = new File ("/path/to/my/audio.mp3"); 
    DataSource ds = Manager.createDataSource(f.toURI().toURL()); 
    ds.connect(); 
    ds.start(); 
    ... 
} catch (java.io.IOException e) { 
    ... 
} catch (NoDataSourceException e) { 
    ... 
} 

Après cette essayez d'obtenir les contrôles du DataSource: ds.getControls(), et voir si des contrôles vous permet de lire les données audio brutes.

Vous devrez probablement effectuer toutes sortes de nettoyages, par ex. ds.disconnect(), après que vous avez fini de lire l'audio.

En outre, ne pas oublier d'installer le JMF MP3 plugin

- Lauri