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 :

Lire un fichier MIDI


Sujet :

C++Builder

  1. #1
    Membre chevronn� Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    669
    D�tails du profil
    Informations personnelles :
    �ge : 60

    Informations forums :
    Inscription : Novembre 2004
    Messages : 669
    Par d�faut Lire un fichier MIDI
    Bonjour

    SVP
    Ce code lit une sequence midi a l'appuit sur un TButton, mais ne le lit qu'une fois, ont peut appuyer 50 fois sur le TButton, rien ne se passe ? Pourquoi ?

    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
     
    //inclure mmsystem
     
    #include "mmsystem.h"
     
     
    //jouer le morceau par un clickbutton.
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     
    //Ouverture du periph midi
     
    UINT uiMIDIPlayerID;
    MCI_OPEN_PARMS mciOpenParms;
    mciOpenParms.lpstrDeviceType = "sequencer";
    mciOpenParms.lpstrElementName = "C:\\mid.mid";
     
    if(mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_TYPE | MCI_OPEN_ELEMENT, (DWORD_PTR)&mciOpenParms)== 0)
     
     
    //Obtention de l'ID du sequencer MIDI
     
    uiMIDIPlayerID = mciOpenParms.wDeviceID;
     
     
    //Jouer le fichier MIDI
     
    MCI_PLAY_PARMS mciPlayParms;
    mciSendCommand(uiMIDIPlayerID, MCI_PLAY, 0, (DWORD_PTR)&mciPlayParms);
    }
    //---------------------------------------------------------------------------
    Merci
    Merci A++

  2. #2
    Membre exp�riment�
    Avatar de Djob
    Inscrit en
    Ao�t 2002
    Messages
    215
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2002
    Messages : 215
    Par d�faut
    connaissais pas �a tiens,

    mais d'instinct je dirais parce que le device est d�j� ouvert ...
    peut �tre faudrait un close :

    essai peut �tre �a :

    dans le .h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    UINT uiMIDIPlayerID; //<--variable publique de Form1
    dans le cpp:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     
            MCI_OPEN_PARMS mciOpenParms;
            mciOpenParms.lpstrDeviceType = "sequencer";
            mciOpenParms.lpstrElementName = "C:\\mid.mid";
            mciSendCommand(uiMIDIPlayerID,MCI_CLOSE,0,NULL);
            if(mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_TYPE | MCI_OPEN_ELEMENT, (DWORD_PTR)&mciOpenParms)== 0)
            {
              uiMIDIPlayerID = mciOpenParms.wDeviceID;
              MCI_PLAY_PARMS mciPlayParms;
              mciSendCommand(uiMIDIPlayerID, MCI_PLAY, 0, (DWORD_PTR)&mciPlayParms);
            }
    }

  3. #3
    Membre confirm� Avatar de jagboys
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    166
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 166
    Par d�faut Mci
    Bonjour,

    Essais de faire un MCI_CLOSE � la fin de ta fonction Button1Click.

    Jagboys

  4. #4
    Membre chevronn� Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    669
    D�tails du profil
    Informations personnelles :
    �ge : 60

    Informations forums :
    Inscription : Novembre 2004
    Messages : 669
    Par d�faut
    Bonjour Djob et jagboys

    Et Merci de m'avoir repondu.

    Je vient de test�, c'est bon Djob, ca marche impecable MERCI.

    Donc le code est bon, je ne le reecrit pas
    Pour information supplementaire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    //Pour mettre en pause : 
    mciSendCommand(uiMIDIPlayerID, MCI_PAUSE, 0, NULL);
     
    //Pour arretté le morceau en cour de lecture :
    mciSendCommand(uiMIDIPlayerID, MCI_CLOSE, 0, NULL);
    Je vous remerci Djob et jagboys Merci et A++

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

Discussions similaires

  1. [Servlet][EJB]lire un fichier � partir de mon bean
    Par kimausoleil dans le forum Servlets/JSP
    R�ponses: 3
    Dernier message: 13/02/2004, 14h26
  2. [MFC] lire un fichier en int
    Par Kevgeii dans le forum MFC
    R�ponses: 3
    Dernier message: 23/01/2004, 09h32
  3. R�ponses: 5
    Dernier message: 11/01/2004, 20h17
  4. Lire un fichier de 50 gb
    Par Maryves dans le forum MFC
    R�ponses: 2
    Dernier message: 08/01/2004, 14h08
  5. Lire le fichier du port série
    Par saibe dans le forum Linux
    R�ponses: 7
    Dernier message: 09/04/2003, 09h29

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