2009-09-02 29 views
1

J'ai ce petit code qui effectue l'enregistrement en Java. Je souhaite ajouter une sorte de fonctionnalité pour en faire une présentation visuelle. Comment me conseilleriez-vous d'aborder cela? (Je suis très nouveau à java)Comment présenter une forme d'onde en Java

Je voudrais que la présentation visuelle apparaisse comme un premier plan d'une image actuelle existante.

+0

J'ai ajouté quelques balises qui pourraient aider à faire bouger un peu mieux cette question. – notJim

Répondre

0

Vous pouvez le faire avec Java Sound API (AudioSystem, AudioInputStream, AudioFormat). L'API vous permet de lire les fichiers .wav octet par octet, et vous pouvez également obtenir des informations de qualité bitrate, vbr, à partir de l'objet AudioFormat. Vous pouvez ensuite dessiner ces informations avec AWT, Swing ou ce que vous voulez.

1

sauter le premier 44 octets à partir du fichier wav (en-tête), puis lire les données à l'aide de cette fonction:

private static double readLEShort(RandomAccessFile f) { 
    try { 
     byte b1 = (byte) f.read(); 
     byte b2 = (byte) f.read(); 
     return (double) (b2 << 8 | b1 & 0xFF)/32767.0; 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return 0; 
} 

une valeur pour chaque canal. Cela vous donnera un nombre entre -1 et 1, que vous pouvez dessiner sur votre graphique. Je crois que quelqu'un d'autre aidera à le dessiner.