Compartilhar via


Pausando e retomando a reprodução

Você pode interromper a reprodução de um dispositivo ou arquivo associado a uma janela MCIWnd usando a macro MCIWndPause . Em seguida, você pode reiniciar a reprodução usando a macro MCIWndResume . Se o dispositivo não der suporte à retomada ou se ocorrer um erro, você poderá usar a macro MCIWndPlay para reiniciar a reprodução.

O exemplo a seguir cria uma janela MCIWnd e reproduz um arquivo AVI. Os comandos de menu Pausar e Retomar estão disponíveis para o usuário interromper e reiniciar a reprodução.

Os estilos de janela MCIWnd são alterados temporariamente usando a macro MCIWndChangeStyles para inibir que uma caixa de diálogo de erro MCI seja exibida se MCIWndResume falhar.

case WM_COMMAND: 
    switch (wParam) 
    { 
        case IDM_CREATEMCIWND:             // creates and plays clip 
            g_hwndMCIWnd = MCIWndCreate(hwnd,  
                g_hinst,                      
                WS_CHILD | WS_VISIBLE |    // standard styles
                MCIWNDF_NOPLAYBAR |        // hides toolbar 
                MCIWNDF_NOTIFYMODE,        // notifies of mode changes
                "sample.avi"); 
 
            MCIWndPlay(g_hwndMCIWnd); 
            break;    
        case IDM_PAUSEMCIWND:              // pauses playback 
            MCIWndPause(g_hwndMCIWnd); 
            MessageBox(hwnd, "MCIWnd", "Pausing Playback", MB_OK); 
            break; 
        case IDM_RESUMEMCIWND:          // resumes playback 
            MCIWndChangeStyles(      // hides error dialog messages
                g_hwndMCIWnd,        // MCIWnd window
                MCIWNDF_NOERRORDLG,  // mask of style to change
                MCIWNDF_NOERRORDLG); // suppresses MCI error dialogs 
 
            lResult = MCIWndResume(g_hwndMCIWnd); 
 
            if(lResult){                   // device doesn't resume 
                MessageBox(hwnd, "MCIWnd", 
                    "Resume with Stop and Play", MB_OK); 
                MCIWndStop(g_hwndMCIWnd); 
                MCIWndPlay(g_hwndMCIWnd); 
 
                MCIWndChangeStyles(        // resumes original styles
                    g_hwndMCIWnd, 
                    MCIWNDF_NOERRORDLG, 
                    NULL); 
        } 
        break; 
    } 
    break; 
 
// Handle other messages here.