Méthode IMFPMediaItem ::SetStartStopPosition (mfplay.h)

Important Déconseillée. Cette API peut être supprimée des versions ultérieures 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 avoir la valeur 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 avoir la valeur 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.
  • Temps d’arrêt inférieur à l’heure de début.

Remarques

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, transmettez des valeurs non NULL pour pguidStartPositionType et pvStartValue.
  • Pour définir l’heure d’arrêt, transmettez 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 time (pvStartValue ou pvStopValue) utilise le type de données suivant :
  • Type variant (vt) : VT_I8
  • Membre variant : hVal
Pour effacer une heure précédemment définie, utilisez un PROPVARIANT (VT_EMPTY) vide.
 

Les heures de début et d’arrêt ajustées sont utilisées la prochaine fois qu’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

Condition requise Valeur
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

Comment lire un clip de fichier

IMFPMediaItem

Utilisation de MFPlay pour la lecture audio/vidéo