[MCIWnd Window 클래스 이 페이지와 연결된 기능은 레거시 기능입니다. MediaPlayer로 대체되었습니다. MediaPlayer Windows 10 및 Windows 11에 최적화되었습니다. 가능한 경우 새 코드에서 MCIWnd Window 클래스 대신 MediaPlayer 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
재생 제어는 현재 재생 위치에서 콘텐츠의 끝까지 MCIWnd 창과 연결된 콘텐츠 또는 파일을 재생하는 MCIWndPlay 매크로로 시작합니다. 재생을 콘텐츠 또는 파일의 특정 부분으로 제한하려는 경우 다른 재생 MCIWnd 매크로(MCIWndPlayFrom, MCIWndPlayTo및 MCIWndPlayFromTo중에서 선택할 수 있습니다.
또한 적절한 시간 형식을 설정해야 합니다. 시간 형식은 콘텐츠가 프레임, 밀리초, 트랙 또는 기타 단위로 측정되는지 여부를 결정합니다.
다음 예제에서는 MCIWnd 창을 만들고 콘텐츠의 마지막 세 번째, 첫 번째 세 번째 또는 중간 3분의 1을 재생하는 메뉴 명령을 제공합니다. 이러한 메뉴 명령은 MCIWndPlayFrom, MCIWndPlayTo및 MCIWndPlayFromTo 사용하여 콘텐츠 세그먼트를 재생합니다. 또한 이 예제에서는 MCIWndGetStart 및 MCIWndGetEnd 매크로를 사용하여 콘텐츠의 시작과 끝을 식별하고 MCIWndHome 매크로를 사용하여 재생 위치를 콘텐츠의 시작 부분으로 이동합니다.
MCIWndCreate 함수는 표준 창 스타일 외에도 WS_CAPTION 및 MCIWNDF_SHOWALL 스타일을 사용하여 MCIWnd 창의 제목 표시줄에 파일 이름, 모드 및 현재 재생 위치를 표시합니다.
case WM_COMMAND:
switch (wParam)
{
case IDM_CREATEMCIWND:
g_hwndMCIWnd = MCIWndCreate(hwnd,
g_hinst,
WS_CHILD | WS_VISIBLE | WS_CAPTION |
MCIWNDF_SHOWALL,
"sample.avi");
break;
case IDM_PLAYFROM: // plays last third of clip
MCIWndUseTime(g_hwndMCIWnd); // millisecond format
// Get media start and end positions.
lStart = MCIWndGetStart(g_hwndMCIWnd);
lEnd = MCIWndGetEnd(g_hwndMCIWnd);
// Determine playback end position.
lPlayStart = 2 * (lEnd - lStart) / 3 + lStart;
MCIWndPlayFrom(g_hwndMCIWnd, lPlayStart);
break;
case IDM_PLAYTO: // plays first third of clip
MCIWndUseTime(g_hwndMCIWnd); // millisecond format
// Get media start and end positions.
lStart = MCIWndGetStart(g_hwndMCIWnd);
lEnd = MCIWndGetEnd(g_hwndMCIWnd);
// Determine playback start position.
lPlayEnd = (lEnd - lStart) / 3 + lStart;
MCIWndHome(g_hwndMCIWnd);
MCIWndPlayTo(g_hwndMCIWnd, lPlayEnd);
break;
case IDM_PLAYSOME: // plays middle third of clip
MCIWndUseTime(g_hwndMCIWnd); // millisecond format
// Get media start and end positions.
lStart = MCIWndGetStart(g_hwndMCIWnd);
lEnd = MCIWndGetEnd(g_hwndMCIWnd);
// Determine playback start and end positions.
lPlayStart = (lEnd - lStart) / 3 + lStart;
lPlayEnd = 2 * (lEnd - lStart) / 3 + lStart;
MCIWndPlayFromTo(g_hwndMCIWnd, lPlayStart, lPlayEnd);
break;
// Handle other commands here.
}