Freigeben über


Abrufen der Wiedergabedauer

[Bei dem auf dieser Seite gezeigten Feature MFPlay handelt es sich um ein Legacyfeature. Es wurde durch MediaPlayer und IMFMediaEngine abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass in neuem Code wenn möglich MediaPlayer und IMFMediaEngine anstelle von DirectShow verwendet wird. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, wenn möglich umgeschrieben wird, um die neuen APIs zu verwenden.]

In diesem Thema wird beschrieben, wie Sie die Wiedergabedauer einer Mediendatei mit MFPlay abrufen.

Abrufen der Wiedergabedauer

  1. Rufen Sie IMFPMediaPlayer::CreateMediaItemFromURL oder IMFPMediaPlayer::CreateMediaItemFromObject auf, um ein Medienelement für die Datei zu erstellen.
  2. Rufen Sie IMFPMediaItem::GetDuration auf. Geben Sie MFP_POSITIONTYPE_100NS für den ersten Parameter an. Die Dauer wird als PROPVARIANT-Element zurückgegeben, das einen LARGE_INTEGER-Wert enthält. Die Dauer wird in Einheiten von 100 Nanosekunden angegeben.

Im folgenden Beispiel wird Schritt 2 veranschaulicht:

#include <propvarutil.h>

HRESULT GetPlaybackDuration(IMFPMediaItem *pItem, ULONGLONG *phnsDuration)
{
    PROPVARIANT var;

    HRESULT hr = pItem->GetDuration(MFP_POSITIONTYPE_100NS, &var);

    if (SUCCEEDED(hr))
    {
        hr = PropVariantToUInt64(var, phnsDuration);
        PropVariantClear(&var);
    }

    return hr;
}

Anforderungen

MFPlay erfordert Windows 7.

Verwenden von MFPlay für die Audio-/Videowiedergabe