[C con Clase] Ayuda

Steven Davidson srd4121 en njit.edu
Mar Jul 1 23:03:00 CEST 2008


Hola Yasser,

Yasser Gozalez Soto wrote:
> Hola. Quiero reproducir un archivo .mid en C++ usando los MCI no se
> qué.
> Necesito un código de ejemplo. 
> 

Efectivamente, puedes usar el API de la MCI para manipular ficheros 
MIDI. Existen dos maneras de usar MCI: enviando comandos a través de una 
cadena de caracteres con formato y directamente con diversas funciones 
de C que tomarán estructuras con información rellenada.

Si quieres algo sencillo, sugiero usar los comandos. Por ejemplo, la 
suecuencia de comandos sería la siguiente:

"open musica.mid alias cancion"
   "play cancion"
   "stop cancion"
"close cancion"

Creamos el sobrenombre "cancion" para que podamos referirnos a este 
"dispositivo" en otros comandos.

Pasaríamos estas cadenas a la función 'mciSendString()'; por ejemplo,

case WM_CREATE:
   mciSendString( "open musica.mid alias cancion", NULL, 0, NULL );
   ...
return 0;

case WM_COMMAND:
   if( HIWORD(wParam) == BN_CLICKED )
     if( LOWORD(wParam) == IDC_BOTON_TOCAR )
       mciSendString( "play cancion", NULL, 0, NULL );
     else if( LOWORD(wParam) == IDC_BOTON_PARAR )
       mciSendString( "stop cancion", NULL, 0, NULL );
   ...

case WM_DESTROY:
   mciSendString( "close cancion", NULL, 0, NULL );

Existen otros comandos. Sugiero consultar estos enlaces en MSDN:
http://msdn.microsoft.com/en-us/library/ms709461(VS.85).aspx
http://msdn.microsoft.com/en-us/library/ms710815(VS.85).aspx

Ten en cuenta que para usar este API debes incluir el fichero de 
cabecera <mmsystem.h> y agregar la biblioteca "winmm.lib" (o "libwinmm.a").

También existe un API de MIDI, si requieres mayor control. Puedes 
consultar la siguiente página: 
http://msdn.microsoft.com/en-us/library/ms712733(VS.85).aspx


Espero que esto te sirva.

Steven





Más información sobre la lista de distribución Cconclase