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

C++Builder Discussion :

Enregistrement du son par programme


Sujet :

C++Builder

  1. #1
    Invit�
    Invit�(e)
    Par d�faut Enregistrement du son par programme
    Bonjour,

    Je voudrais savoir comment enregistrer un son � partir d'un microphone branch� sur le connecteur entr�e de ma carte son et g�n�rer un .wav en sortie.

    Je sais que l'on peut le faire avec les utilitaires livr�s dans Windows, mais je voudrais r�aliser l'enregistement moi-m�me.

    J'ai la m�me question avec une Web cam...

    Mercii.

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    162
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2002
    Messages : 162
    Par d�faut
    Pour le son :
    Je crois que tu devra passer par les API Windows. Et �a, �a n'est pas simple.

    Ou alors tu peux utiliser l'API DirectX (DirectSound) qui sera peut-�tre plus simple.

    Je ne me rapelle plus des fonctions � appeler par contre. D�sol�.

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 412
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 412
    Par d�faut
    Salut !

    Tu va trouver ton bonheur ici :

    http://www.bridgespublishing.com/articles/issues/9810/Low-level_wave_audio__part_3.htm

    Les explications sont donn�es pas � pas !

    Ou cherches avec GOOGLE : waveInPrepareHeader si le lien ne fonctionne pas ! Il y a d'autres liens en particulier vers MS.

    A plus et ... bon courage !

    PS Je vais essayer de suivre le sujet mais je ne suis disponible qu'� des moments
    impr�visibles donc... ne pas s'�nerver !

  4. #4
    Membre Expert
    Avatar de Gilles Lou�se
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par d�faut
    En principe, on peut passer par le TMediaPlayer de C++ Builder, je vous donne un d�but de solution.

    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
    void __fastcall TForm1::MediaPlayer1Click(TObject *Sender,
          TMPBtnType Button, bool &DoDefault)
    {
    if(Button==btPlay)
    {
    MediaPlayer1->Wait=true;
    MediaPlayer1->Open();
    MediaPlayer1->Play();
    }
     
    if(Button==btRecord)
    {
    MediaPlayer1->EnabledButtons<<btStop;
    MediaPlayer1->StartRecording();
    }
     
    if(Button==btStop)
    {
    MediaPlayer1->Save();
    }
    }

    Pour que �a marche, mettez un wave quelconque dans le r�pertoire du projet (trouvez en un tr�s court parmi les sons pr�sents dans votre ordinateur) et faites pointer FileName de MedialPlayer1 sur ce fichier en cliquant les trois petits points. En cliquant Play � l'ex�cution, vous entendez le son. En cliquant Record (le point rouge), vous enregistrez, le bouton Stop est alors valide et vous pouvez vous �couter.

    Le probl�me est qu'il enregsitre � la suite. Si vous �crivez avant d'enresgitrer MediaPlayer1->Rewind() vous enregistrerez au d�but mais le reste sera maintenu, je ne sais pas trop comment faire pour �crire � partir d'un fichier Wave vide, �a ne doit pas �tre sorcier mais je n'ai pas le temps de chercher ce d�tail, si vous trouvez, indiquez-nous comment vous avez fait. Vous ne pouvez pas d�truire le fichier Wave en mode Open, le delete par DeleteFile sera refus�. Si vous faites MediaPlayer1->Close puis DeleteFile puis CreateFile puis MediaPlayer1->Open(), il y a erreur � l'ex�cution, donc je ne vois pas bien ce point pour l'instant.

    Pour la prise d'images, ca doit �tre � peu pr�s pareil si ce n'est que les fichiers sont du type avi.

    � bient�t
    Gilles

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 5
    Dernier message: 09/05/2012, 12h12
  2. R�ponses: 1
    Dernier message: 01/11/2008, 20h16
  3. R�ponses: 2
    Dernier message: 22/01/2008, 21h03
  4. [FMS/Red5] Enregistrement de son par l'utilisateur
    Par BnA dans le forum Dynamique
    R�ponses: 5
    Dernier message: 13/11/2006, 09h29
  5. [DLL] Enregistrer DLL (COM) par programmation
    Par pataguillon dans le forum MFC
    R�ponses: 5
    Dernier message: 14/03/2006, 14h01

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