• Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.

Résolu Java : enregistrer le son du micro + l'ecrire dans un fichier wav

  • Auteur de la discussion I AteK I
  • Date de début
I

I AteK I

Visiteur
Visiteur
#1
salut,
Je voudrais enregistrer le son du micro puis l enregistrer dans un fichier wav le soucis c'est que quand j'essai d'écouter le fichier wav cela me met fichier illisible :/

code source pour enregistrer le son du micro :
Code:
TargetDataLine line;
        long end = System.currentTimeMillis() + DurationTime;
        try {
            line = AudioSystem.getTargetDataLine(null);
            line.open();


            ByteArrayOutputStream out  = new ByteArrayOutputStream();
            int numBytesRead;
            data = new byte[line.getBufferSize() / 5];

            line.start();

            while (System.currentTimeMillis() <= end) {
                numBytesRead =  line.read(data, 0, data.length);
                out.write(data, 0, numBytesRead);
            }
        } catch (LineUnavailableException e) {
            e.printStackTrace();
        }
celui pour écrire dans le fichier wav :
Code:
        BufferedOutputStream bos = null;
        try {
            String txtDate = new SimpleDateFormat("dd/MM/yyyy/hh/ss", Locale.FRANCE).format(new Date());
            File file = new File("ListenFile" + txtDate +".wav");
            if(!file.exists()) {
                file.createNewFile();
            }
            FileOutputStream fos = new FileOutputStream(file);

            bos = new BufferedOutputStream(fos);

            System.out.println("Writing byte array to file");

            bos.write(data);

            System.out.println("File written");
        } catch(IOException e) {
            e.printStackTrace();
        }
        finally {
            if(bos != null) {
                try {
                    bos.flush();
                    bos.close();
                } catch(Exception e){
                    e.printStackTrace();
                }
            }
        }