다음을 통해 공유


재생 일시 중지 및 다시 시작

[MCIWnd Window 클래스 이 페이지와 연결된 기능은 레거시 기능입니다. MediaPlayer 로 대체되었습니다. MediaPlayer Windows 10 및 Windows 11에 최적화되었습니다. 가능한 경우 새 코드에서 MCIWnd Window 클래스 대신 MediaPlayer 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

MCIWndPause 매크로를 사용하여 MCIWnd 창과 연결된 디바이스 또는 파일의 재생을 중단할 수 있습니다. 그런 다음 MCIWndResume 매크로를 사용하여 재생을 다시 시작할 수 있습니다. 디바이스에서 다시 시작을 지원하지 않거나 오류가 발생하는 경우 MCIWndPlay 매크로를 사용하여 재생을 다시 시작할 수 있습니다.

다음 예제에서는 MCIWnd 창을 만들고 AVI 파일을 재생합니다. 사용자가 일시 중지 및 다시 시작 메뉴 명령을 사용하여 재생을 중단하고 다시 시작할 수 있습니다.

MCIWnd Windows 스타일은 MCIWndChangeStyles 매크로를 사용하여 MCIWndResume 실패할 경우 MCI 오류 대화 상자가 표시되지 않도록 하여 일시적으로 변경됩니다.

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.