Pausando e retomando a reprodução

[O recurso associado a esta página, MCIWnd Window Class, é um recurso legado. Foi substituído por MediaPlayer. MediaPlayer foi otimizado para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize o MediaPlayer em vez da Classe de Janela MCIWnd , sempre que 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 interromper a reprodução de um dispositivo ou arquivo associado a uma janela MCIWnd usando o macro MCIWndPause. Em seguida, você pode reiniciar a reprodução usando a macro MCIWndResume. Se o dispositivo não suportar retomar ou se ocorrer um erro, pode utilizar a macro MCIWndPlay para reiniciar a reprodução.

O exemplo a seguir cria uma janela MCIWnd e reproduz um arquivo AVI. Os comandos do 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 a exibição de uma caixa de diálogo de erro MCI 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.