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

Multimédia Java Discussion :

capture de son


Sujet :

Multimédia Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2008
    Messages : 45
    Par défaut capture de son
    Bonjour,
    Je veux faire une capture de son à partir de mon micro, j'ai trouvé un petit bout de code mais il me génère une exception .voilà le bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    import javax.media.CaptureDeviceInfo;
    import javax.media.CaptureDeviceManager;
    import javax.media.DataSink;
    import javax.media.Manager;
    import javax.media.MediaLocator;
    import javax.media.Processor;
    import javax.media.protocol.DataSource;
    import javax.media.protocol.FileTypeDescriptor;
    import jmapps.util.StateHelper;
    public class ReadOnAudioDevice {
    public static void main(String[] args) {
    // récupération d’un capture device
    CaptureDeviceInfo captureDevice=CaptureDeviceManager.getDevice("JavaSound audio capture");
    // récupération du MediaLocator lié au périphérique de capture
    MediaLocator mediaLocator = captureDevice.getLocator();
    Processor processor = null;
    StateHelper stateHelper = null;
    try {
    // création d'un processeur
    processor = Manager.createProcessor(mediaLocator);
    // création d'un objet helper permettant de simplifier la configuration
    stateHelper = new StateHelper(processor);
    // configuration du processeur
    stateHelper.configure();
    // configuration de la destination => format Wave
    processor.setContentDescriptor(new FileTypeDescriptor(FileTypeDescriptor.WAVE));
    //initialisations
    stateHelper.realize();
    // récupération de la source de sortie
    DataSource source = processor.getDataOutput();
    // création d'un MediaLocator lié à un fichier (destination)
    MediaLocator destination = new MediaLocator("file://c:/samples/capture.wav");
    // création d'un DataSink pour écrire dans le fichier le flux entrant
    // (synchronisation entre la source et la destination)
    DataSink fileWriter = Manager.createDataSink(source, destination);
    // ouveture de la lecture / enregistrement (préparation)
    fileWriter.open();
    // démarrage du processor et du filewriter
    fileWriter.start();
    // capture 10 secondes
    stateHelper.playToEndOfMedia(10000);
    // fermeture de la capture
    stateHelper.close();
    // fermeture du fichier
    fileWriter.close();
    } catch (Exception e) {
    System.out.println("error : " + e);
    }
    }
    }
    voilà l'erreur géneré :
    Exception in thread "main" java.lang.NullPointerException
    at ReadOnAudioDevice.main(ReadOnAudioDevice.java:15)

  2. #2
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Par défaut
    Bon, je vais essayer de donner une réponse courte ... ton code marche chez moi! Je l'ai testé sous Netbeans 6.5. Comme je déteste ma voix ... j'ai siffloté dans mon micro et il se trouvait bien dans le fichier c:/samples/capture.wav!

    Si tu as un NullPointerException, c'est que tu n'a pas de devices!

    Pour voir tes devices installés, tu fais par exemple:

    Vector devices = (Vector) CaptureDeviceManager.getDeviceList(null);
    for (int i=0; i < devices.size(); i++) {
    CaptureDeviceInfo cdi = (CaptureDeviceInfo)devices.elementAt(i);
    System.out.println(cdi);
    }

    Tu n'auras rien, c'est sûr.

    Sur ta machine, où tu compiles et/ou tu exécutes ton code, tu dois avoir un jmf.jar! Sûr.

    Mais cela ne suffit pas: tu dois aussi avoir un jmf.properties dans le répertoire où se trouve ton jmf.jar. Enfin ce même jmf.properties doit avoir été généré avec un jmfregistry.exe que tu dois exécuter pour installer tous les périphériques et drivers que tu as sur ta machine!
    Je travaille avec JMF2.1.1e.

    Si tu as besoin d'aide, demandes donc!
    Cordialement

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2008
    Messages : 45
    Par défaut
    Merci bien pour tes précieuses informations , en faite maintenent ça marche trés bien chez moi aussi , j'ai pris le fichier jmf.properties que j'ai recupéré à partir de C:\Program Files\JMF2.1.1e\lib que j'ai mis dans mon projet

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2008
    Messages : 45
    Par défaut
    maintenant est ce que vous pouvez me conseillé sur la procédure de d'échantiller mon audio à fin d'utiliser le protocole RTP pour le transférer en temps réèl vers un autre pc .

  5. #5
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Par défaut
    Je n'ai pas trop le temps, mais j'essaierai d'y penser.

    En fait j'ai un projet en plan (Netbeans / Java) avec UPnP pour faire du streaming avec ma Webcam (que j'ai acheté exprès). C'est en fait assez similaire.

    Cordialement

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

Discussions similaires

  1. Capture de son à partir du micro
    Par pelotudo dans le forum MATLAB
    Réponses: 4
    Dernier message: 27/02/2007, 23h44
  2. Capturer du son
    Par chaval dans le forum Visual C++
    Réponses: 1
    Dernier message: 14/12/2006, 13h17
  3. Capture de son au micro avec DirectSound
    Par Rémiz dans le forum DirectX
    Réponses: 4
    Dernier message: 21/12/2005, 20h00
  4. Raccourcis clavier et capture de sons sous Windows
    Par nek_kro_kvlt dans le forum Langage
    Réponses: 2
    Dernier message: 11/12/2005, 13h15
  5. Capture de son au micro avec mciSendString
    Par Rémiz dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 08/12/2005, 17h49

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