Compartilhar via


Personalizando o processo de gravação

[O recurso associado a esta página, MCIWnd Window Class, é um recurso herdado. Foi substituído pelo MediaPlayer. O MediaPlayer foi otimizado para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o MediaPlayer em vez da Classe de Janela MCIWnd, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Você pode personalizar o processo de gravação, assumindo o controle total de quase tudo , desde a criação da janela MCIWnd até o salvamento das informações gravadas em um arquivo. O exemplo a seguir consulta o dispositivo MCI para registrar e salvar recursos e inclui comandos de menu para gravar no início ou no final do conteúdo.

O exemplo a seguir usa a função MCIWndCreate para criar uma nova janela e permite que você especifique um arquivo existente para armazenar os dados gravados e a macro MCIWndNew para associar um novo arquivo à janela. Como alternativa, você pode usar a macro MCIWndOpen ou MCIWndOpenDialog para especificar um arquivo.

O exemplo usa a macro MCIWndCanRecord para verificar se o dispositivo pode gravar e a macro MCIWndCanSave para verificar se o dispositivo salva informações. O exemplo define a posição de reprodução atual usando as macros MCIWndHome e MCIWndEnd . O exemplo inicia a gravação usando a macro MCIWndRecord . Depois que as informações são registradas, o exemplo as salva usando a 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.