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.