Freigeben über


Einschränken des Wiedergabebereichs

[Die dieser Seite zugeordnete Funktion MCIWnd Window Class ist ein Legacyfeature. Es wurde von MediaPlayer abgelöst. MediaPlayer wurde für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer anstelle der MCIWnd-Fensterklasse verwendet. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Die Steuerung der Wiedergabe beginnt mit dem MCIWndPlay-Makro , das den Einem MCIWnd-Fenster zugeordneten Inhalt oder die Datei von der aktuellen Wiedergabeposition bis zum Ende des Inhalts wiedergibt. Wenn Sie die Wiedergabe auf einen bestimmten Teil des Inhalts oder der Datei beschränken möchten, können Sie aus den anderen MCIWnd-Makros für die Wiedergabe auswählen: MCIWndPlayFrom, MCIWndPlayTo und MCIWndPlayFromTo.

Außerdem müssen Sie ein geeignetes Zeitformat festlegen. Das Zeitformat bestimmt, ob der Inhalt in Frames, Millisekunden, Spuren oder anderen Einheiten gemessen wird.

Im folgenden Beispiel wird ein MCIWnd-Fenster erstellt und Menübefehle zum Wiedergeben des letzten Drittels, des ersten Drittels oder des mittleren Drittels des Inhalts bereitgestellt. Diese Menübefehle verwenden MCIWndPlayFrom, MCIWndPlayTo und MCIWndPlayFromTo , um die Inhaltssegmente wiederzugeben. Im Beispiel werden auch die Makros MCIWndGetStart und MCIWndGetEnd verwendet, um den Anfang und das Ende des Inhalts zu identifizieren, und es verwendet das MCIWndHome-Makro , um die Wiedergabeposition an den Anfang des Inhalts zu verschieben.

Die MCIWndCreate-Funktion verwendet neben den Standardfensterstilen die Formatvorlagen WS_CAPTION und MCIWNDF_SHOWALL, um den Dateinamen, den Modus und die aktuelle Wiedergabeposition in der Titelleiste des MCIWnd-Fensters anzuzeigen.

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. 
    }