Partager via


Suspension et reprise de la lecture

Vous pouvez interrompre la lecture d’un appareil ou d’un fichier associé à une fenêtre MCIWnd à l’aide de la macro MCIWndPause . Vous pouvez ensuite redémarrer la lecture à l’aide de la macro MCIWndResume . Si l’appareil ne prend pas en charge la reprise ou si une erreur se produit, vous pouvez utiliser la macro MCIWndPlay pour redémarrer la lecture.

L’exemple suivant crée une fenêtre MCIWnd et lit un fichier AVI. Les commandes de menu Suspendre et reprendre sont disponibles pour l’utilisateur pour interrompre et redémarrer la lecture.

Les styles de fenêtre MCIWnd sont modifiés temporairement à l’aide de la macro MCIWndChangeStyles pour empêcher l’affichage d’une boîte de dialogue d’erreur MCI en cas d’échec de MCIWndResume .

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.