IMFPMediaItem::SetStartStopPosition-Methode (mfplay.h)

Wichtig Veraltet. Diese API kann aus zukünftigen Versionen von Windows entfernt werden. Anwendungen sollten die Mediensitzung für die Wiedergabe verwenden.
 

Legt die Start- und Stoppzeit für das Medienelement fest.

Syntax

HRESULT SetStartStopPosition(
  [in] const GUID        *pguidStartPositionType,
  [in] const PROPVARIANT *pvStartValue,
  [in] const GUID        *pguidStopPositionType,
  [in] const PROPVARIANT *pvStopValue
);

Parameter

[in] pguidStartPositionType

Zeiteinheit für die Startposition. Siehe Hinweise. Dieser Parameter kann NULL sein.

[in] pvStartValue

Startposition. Die Bedeutung und der Datentyp dieses Parameters werden durch den pguidStartPositionType-Parameter angegeben. Der parameter pvStartValue muss NULL sein, wenn pguidStartPositionTypeNULL ist und andernfalls NICHT NULL sein kann.

[in] pguidStopPositionType

Zeiteinheit für die Stoppposition. Siehe Hinweise. Dieser Parameter kann NULL sein.

[in] pvStopValue

Stoppposition. Die Bedeutung und der Datentyp dieses Parameters werden durch den pguidStopPositionType-Parameter angegeben. Der parameter pvStopValue muss NULL sein, wenn pguidStopPositionTypeNULL ist und andernfalls NICHT NULL sein kann.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich ausgeführt.
E_INVALIDARG
Ungültiges Argument.
MF_E_OUT_OF_RANGE
Ungültige Start- oder Stoppzeit. Folgendes kann diesen Fehler verursachen:
  • Zeit kleiner als 00.
  • Zeit größer als die Gesamtdauer des Medienelements.
  • Die Stoppzeit ist kürzer als die Startzeit.

Hinweise

Standardmäßig wird ein Medienelement vom Anfang bis zum Ende der Datei wiedergegeben. Diese Methode passt die Startzeit und/oder die Stoppzeit an:

  • Um die Startzeit festzulegen, übergeben Sie Nicht-NULL-Werte für pguidStartPositionType und pvStartValue.
  • Um die Stoppzeit festzulegen, übergeben Sie Nicht-NULL-Werte für pguidStopPositionType und pvStopValue.
Die Parameter pguidStartPositionType und pguidStopPositionType geben die verwendeten Zeiteinheiten an. Derzeit ist der einzige unterstützte Wert MFP_POSITIONTYPE_100NS.
Wert BESCHREIBUNG
MFP_POSITIONTYPE_100NS Einheiten von 100 Nanosekunden. Der Zeitparameter (pvStartValue oder pvStopValue) verwendet den folgenden Datentyp:
  • Variant-Typ (vt): VT_I8
  • Variant-Member: hVal
Um eine zuvor festgelegte Zeit zu löschen, verwenden Sie einen leeren PROPVARIANT (VT_EMPTY).
 

Die angepassten Start- und Stoppzeiten werden beim nächsten Aufruf von IMFPMediaPlayer::SetMediaItem mit diesem Medienelement verwendet. Wenn das Medienelement bereits auf dem Player festgelegt ist, erfolgt die Änderung nur, wenn Sie SetMediaItem erneut aufrufen.

Beispiele

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

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile mfplay.h

Weitere Informationen

Wiedergeben eines Dateiclips

IMFPMediaItem

Verwenden von MFPlay für die Audio-/Videowiedergabe