[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