begin process at 2010 02 10 14:08:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Au secours

 > 

Comment faire pour traiter en temps réel un signal audio en cours d'enregistrement?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment faire pour traiter en temps réel un signal audio en cours d'enregistrement?

jeudi 27 avril 2006 à 23:59:34 | Comment faire pour traiter en temps réel un signal audio en cours d'enregistrement?

TomC

Tout d'abord bonjour à tous.

Alors voilà, je suis bloqué sur un point de mon projet de fin d'année. je cherche à enregistrer la voix d'une personne avec l'API javaSound. J'ai trouvé pas mal d'informations sur le site de sun.
Jusqu'alors, j'utilisais un TargetDataLine que je couplais avec un AudioInputStream.
Ensuite je lancais la méthode run de ma classe qui étend la classe Thread.
Cette méthode run utilise AudioSystem.write(audioInputStream, formatAudio, monfichier).
Il me semble que cette méthode est bloquante (je ne suis pas sur du terme).

Jusque là tout allait bien avec cette méthode. J'arrivais à enregistrer un fichier audio en wav.

A présent je cherche à implémenter un analyseur de spectre comme on peut en voir sur winamp. Le problème est que je ne sais pas s'il est facilement possible de récupérer à intervalles réguliers une frame de mon flux en cours d'enregistrement (puique AudioSystem.write est bloquante).
Je cherche également à limiter automatiquement la durée de mes enregistrements (pas de bouton stop pour arrêter le rec). Par exemple je souhaite que la personne qui s'enregistre clique sur le bouton "enregistrer" et que l'enregistrement s'arrête automatiquement au bout de 3 secondes.


Si quelqu'un a une solution ce serait super sympa de m'en faire part.


Voici ma methode run:

public void run() {
  
        try {
            line.open(audioFormat);
        } catch (LineUnavailableException e1) {
            e1.printStackTrace();
            return;
        }

        line.start();
        audioInputStream = new AudioInputStream(line);

                
        try {
         // ici, la méthode est bloquante
         AudioSystem.write(audioInputStream, targetType, file);

        } catch (IOException e1) {
            e1.printStackTrace();
        } finally {
            line.close();
            try {
                audioInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

        line.stop();
        line.close();
}



Cette discussion est classée dans : enregistrement, run, méthode, line, audioinputstream


Répondre à ce message

Sujets en rapport avec ce message

Méthode Protected [ par syndrael ] Voici mon code et j'aimerai pouvoir accéder à getTimeInMillis(), mais j'ai une erreur. Pouvez vous m'aider ?GregorianCalendar greday = new GregorianCa enregistrement JBuilder personnal [ par Mikonyx ] Je n'arrive pas à obtenir de clé d'enregistrement pour JBuilder 5 personnal.... je suis les indications , j'ai créé mon compte mais lorsque je lance J le random en java [ par Waaagh ] Bonjour, Est ce que quelqu'un aurait une idée pour optimiser le code suivant (ou aurait un autre a me proposer) :Math.abs((new Random()).nextInt Prob. Thread et Update [ par KeB ] J'ai un problème, je fais un jeu de Frogs et je ne sais pas si c'est parce que j'utilise mal les threads et la fonction Update mais lorsque je fais av nombre de ligne JTextArea [ par kramp ] j'aimerais savoir comment récupérer le nombre de lignes affichées dans une JTextArea qui a été construite avec un String et la méthode setLineWrap(tru Est ce possible? [ par VinZzZ ] Je me pose un question auquel j'espère quelqu'un aura une réponse, mais peut être que ce n'est pas possible en Java??On a crée une classe mère A et un Est ce possible? [ par VinZzZ ] Je me pose un question auquel j'espère quelqu'un aura une réponse, mais peut être que ce n'est pas possible en Java??On a crée une classe mère A et un Est ce possible? [ par VinZzZ ] Je me pose un question auquel j'espère quelqu'un aura une réponse, mais peut être que ce n'est pas possible en Java??On a crée une classe mère A et un Est ce possible? [ par VinZzZ ] Je me pose un question auquel j'espère quelqu'un aura une réponse, mais peut être que ce n'est pas possible en Java??On a crée une classe mère A et un JSP aquisition enregistrement par enregistrement [ par jmg02001 ] Bonjour, sauriez vous comment modifier cette requette (mise dans un java bean) attaquant une base Mysql pour arreter la requette des qu'un enregistrem


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales