Wiederspielen eines Dateiclips

[MFPlay steht für die Verwendung in den Betriebssystemen zur Verfügung, die im Abschnitt Anforderungen angegeben sind. Es kann in nachfolgenden Versionen geändert oder entfernt werden. ]

In diesem Thema wird beschrieben, wie Sie ein Segment einer Mediendatei in MFPlay wiedergeben, indem Sie die Start- und Stoppzeiten für die Wiedergabe festlegen.

So spielen Sie einen Dateiclip wieder

  1. Rufen Sie IMFPMediaPlayer::CreateMediaItemFromURL oder IMFPMediaPlayer::CreateMediaItemFromObject auf, um ein Medienelement für die Datei zu erstellen.
  2. Optional können Sie die Gesamtdauer der Datei wie unter How to Get the Playback Duration (How to Get the Playback Duration) beschrieben erhalten.
  3. Rufen Sie IMFPMediaItem::SetStartStopPosition auf, um die Start- und Stoppzeiten zu festlegen. Die Stoppzeit darf die Dateidauer nicht überschreiten.
  4. Rufen Sie IMFPMediaPlayer::SetMediaItem auf, um die Wiedergabe zu starten.

Im folgenden Beispiel wird die blockierende Version von CreateMediaItemFromURL verwendet. Wenn die nicht blockierende Version verwendet wird, sollte der Code, der nach CreateMediaItemFromURL angezeigt wird, im Handler für das MFP _ EVENT TYPE _ _ MEDIAITEM _ CREATED-Ereignis platziert werden. Weitere Informationen zu Ereignissen in MFPlay finden Sie unter Empfangen von Ereignissen vom Player.

Um die Dateidauer zu erhalten, ruft dieses Beispiel die Funktion auf, die GetPlaybackDuration im Thema How to Get the Playback Duration (How to Get the Playback Duration) gezeigt wird.

HRESULT PlayMediaClip(
    IMFPMediaPlayer *pPlayer,
    PCWSTR pszURL,
    LONGLONG    hnsStart,
    LONGLONG    hnsEnd
    )
{
    IMFPMediaItem *pItem = NULL;
    PROPVARIANT varStart, varEnd;

    ULONGLONG hnsDuration = 0;

    HRESULT hr = pPlayer->CreateMediaItemFromURL(pszURL, TRUE, 0, &pItem);
    if (FAILED(hr))
    {
        goto done;
    }

    hr = GetPlaybackDuration(pItem, &hnsDuration);
    if (FAILED(hr))
    {
        goto done;
    }

    if ((ULONGLONG)hnsEnd > hnsDuration)
    {
        hnsEnd = hnsDuration;
    }

    hr = InitPropVariantFromInt64(hnsStart, &varStart);
    if (FAILED(hr))
    {
        goto done;
    }

    hr = InitPropVariantFromInt64(hnsEnd, &varEnd);
    if (FAILED(hr))
    {
        goto done;
    }

    hr = pItem->SetStartStopPosition(
        &MFP_POSITIONTYPE_100NS,
        &varStart,
        &MFP_POSITIONTYPE_100NS,
        &varEnd
        );
    if (FAILED(hr))
    {
        goto done;
    }

    hr = pPlayer->SetMediaItem(pItem);

done:
    SafeRelease(&pItem);
    return hr;
}

Anforderungen

MFPlay erfordert Windows 7.

Verwenden von MFPlay für die Audio-/Videowiedergabe