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 exécute un fichier AVI. Les commandes du menu suspendre et reprendre sont accessibles à l’utilisateur pour interrompre et redémarrer la lecture.
Les styles de fenêtre MCIWnd sont modifiés temporairement en utilisant la macro MCIWndChangeStyles pour empêcher l’affichage d’une boîte de dialogue d’erreur MCI si MCIWndResume échoue.
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.