Udostępnij przez


Wstrzymanie i wznawianie odtwarzania

[Funkcja skojarzona z tą stroną, MCIWnd Window Class, jest starszą funkcją. Został zastąpiony przez MediaPlayer. MediaPlayer został zoptymalizowany pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał MediaPlayer zamiast klasy okna MCIWnd, jeśli jest to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]

Możesz przerwać odtwarzanie urządzenia lub pliku skojarzonego z oknem MCIWnd przy użyciu makra MCIWndPause. Następnie możesz ponownie uruchomić odtwarzanie przy użyciu makra MCIWndResume. Jeśli urządzenie nie obsługuje wznowienia lub wystąpi błąd, możesz użyć makra MCIWndPlay, aby ponownie uruchomić odtwarzanie.

Poniższy przykład tworzy okno MCIWnd i odtwarza plik AVI. Polecenia wstrzymywania i wznawiania menu są dostępne dla użytkownika w celu przerwania i ponownego uruchomienia odtwarzania.

Style okien MCIWnd są tymczasowo zmieniane przy użyciu makra MCIWndChangeStyles, aby zapobiec wyświetlaniu okna dialogowego błędu MCI, jeśli MCIWndResume nie powiedzie się.

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.