Condividi tramite


Sospensione e ripresa della riproduzione

Puoi interrompere la riproduzione di un dispositivo o di un file associato a una finestra MCIWnd usando la macro MCIWndPause . È quindi possibile riavviare la riproduzione usando la macro MCIWndResume . Se il dispositivo non supporta la ripresa o se si verifica un errore, è possibile usare la macro MCIWndPlay per riavviare la riproduzione.

L'esempio seguente crea una finestra MCIWnd e riproduce un file AVI. I comandi di menu Pausa e ripresa sono disponibili per l'utente per interrompere e riavviare la riproduzione.

Gli stili della finestra MCIWnd vengono modificati temporaneamente utilizzando la macro MCIWndChangeStyles per impedire la visualizzazione di una finestra di dialogo di errore MCI se MCIWndResume ha esito negativo.

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.