Compartir a través de


Personalización del proceso de grabación

[La característica asociada a esta página, clase de ventana MCIWnd, es una característica heredada. Se ha reemplazado por MediaPlayer. MediaPlayer se ha optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer en lugar de la clase de ventana MCIWnd, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Puede personalizar el proceso de grabación, tomando el control completo de la mayoría de todo, desde la creación de la ventana MCIWnd hasta guardar la información grabada en un archivo. En el ejemplo siguiente se consulta el dispositivo MCI para registrar y guardar funcionalidades, e incluye comandos de menú para grabar al principio o al final del contenido.

En el ejemplo siguiente se usa la función MCIWndCreate para crear una nueva ventana y se permite especificar un archivo existente para almacenar los datos registrados y la macro MCIWndNew para asociar un nuevo archivo a la ventana. Como alternativa, puede usar la macro MCIWndOpen o MCIWndOpenDialog para especificar un archivo.

En el ejemplo se usa la macro MCIWndCanRecord para comprobar que el dispositivo puede registrar y la macro MCIWndCanSave para comprobar que el dispositivo guarda la información. En el ejemplo se establece la posición de reproducción actual mediante las macros MCIWndHome y MCIWndEnd . En el ejemplo se inicia la grabación mediante la macro MCIWndRecord . Una vez registrada la información, el ejemplo lo guarda mediante la macro MCIWndSaveDialog .

case WM_COMMAND: 
    switch (wParam) 
    { 
        case IDM_CREATEMCIWND: 
            g_hwndMCIWnd = MCIWndCreate( hwnd, g_hinst, 
                WS_VISIBLE | WS_CHILD | 
                MCIWNDF_RECORD,                   // add Record button
                NULL ); 
 
            MCIWndNew(g_hwndMCIWnd, "waveaudio"); // new file 
 
            if( MCIWndCanRecord(g_hwndMCIWnd) ) 
            { 
                MessageBox( hwnd, 
                "Press the red button on the toolbar to record.", 
                "MCIWnd Record", 
                MB_OK ); 
            } 
            else 
            { 
                MessageBox( hwnd, 
                    "This device doesn't record.", 
                    "MCIWnd Record", 
                    MB_OK ); 
            } 
            break; 
        case IDM_RECORDATSTART: 
            if( MCIWndCanRecord(g_hwndMCIWnd) ) 
            { 
                MCIWndHome(g_hwndMCIWnd); 
                MCIWndRecord(g_hwndMCIWnd); 
            } 
            else 
            { 
                MessageBox( hwnd, 
                    "This device doesn't record.", 
                    "MCIWnd Record", 
                    MB_OK); 
            } 
            break; 
        case IDM_RECORDATEND: 
            if( MCIWndCanRecord(g_hwndMCIWnd) ) 
            { 
                MCIWndEnd(g_hwndMCIWnd); 
                MCIWndRecord(g_hwndMCIWnd); 
            } 
            else 
            { 
                MessageBox( hwnd, 
                    "This device doesn't record.", 
                    "MCIWnd Record", 
                    MB_OK); 
            } 
            break; 
        case IDM_SAVEMCIWND: 
            if( MCIWndCanSave(g_hwndMCIWnd) ) 
                MCIWndSaveDialog(g_hwndMCIWnd); 
    } 
    break; 
 
    // Handle other messages here.