IMFPMediaItem::SetStartStopPosition, méthode (mfplay.h)

Important Déconseillée. Cette API peut être supprimée des futures versions de Windows. Les applications doivent utiliser la session multimédia pour la lecture.
 

Définit l’heure de début et d’arrêt de l’élément multimédia.

Syntaxe

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

Paramètres

[in] pguidStartPositionType

Unité de temps pour la position de début. Consultez la section Notes. Ce paramètre peut être NULL.

[in] pvStartValue

Position de début. La signification et le type de données de ce paramètre sont indiqués par le paramètre pguidStartPositionType . Le paramètre pvStartValue doit être NULL si pguidStartPositionType a la valeur NULL et ne peut pas être NULL dans le cas contraire.

[in] pguidStopPositionType

Unité de temps pour la position d’arrêt. Consultez la section Notes. Ce paramètre peut être NULL.

[in] pvStopValue

Position d’arrêt. La signification et le type de données de ce paramètre sont indiqués par le paramètre pguidStopPositionType . Le paramètre pvStopValue doit être NULL si pguidStopPositionType a la valeur NULL et ne peut pas être NULL dans le cas contraire.

Valeur retournée

Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.

Code de retour Description
S_OK
S_OK
E_INVALIDARG
Argument non valide.
MF_E_OUT_OF_RANGE
Heure de début ou d’arrêt non valide. L’un des éléments suivants peut provoquer cette erreur :
  • Durée inférieure à zéro.
  • Durée supérieure à la durée totale de l’élément multimédia.
  • Heure d’arrêt inférieure à l’heure de début.

Notes

Par défaut, un élément multimédia est lu du début à la fin du fichier. Cette méthode ajuste l’heure de début et/ou l’heure d’arrêt :

  • Pour définir l’heure de début, passez des valeurs non NULL pour pguidStartPositionType et pvStartValue.
  • Pour définir l’heure d’arrêt, passez des valeurs non NULL pour pguidStopPositionType et pvStopValue.
Les paramètres pguidStartPositionType et pguidStopPositionType donnent les unités de temps utilisées. Actuellement, la seule valeur prise en charge est MFP_POSITIONTYPE_100NS.
Valeur Description
MFP_POSITIONTYPE_100NS Unités de 100 nanosecondes. Le paramètre de temps (pvStartValue ou pvStopValue) utilise le type de données suivant :
  • Type de variante (vt) : VT_I8
  • Membre variant : hVal
Pour effacer une heure définie précédemment, utilisez un PROPVARIANT vide (VT_EMPTY).
 

Les heures de début et d’arrêt ajustées sont utilisées la prochaine fois que IMFPMediaPlayer::SetMediaItem est appelé avec cet élément multimédia. Si l’élément multimédia est déjà défini sur le lecteur, la modification ne se produit pas, sauf si vous appelez à nouveau SetMediaItem .

Exemples

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

Configuration requise

   
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
Plateforme cible Windows
En-tête mfplay.h

Voir aussi

Guide pratique pour lire un clip de fichier

IMFPMediaItem

Utilisation de MFPlay pour la lecture audio/vidéo