Lecture d’un clip de fichier

[MFPlay peut être utilisé dans les systèmes d’exploitation spécifiés dans la section Configuration requise. Il sera peut-être modifié ou indisponible dans les versions ultérieures. ]

Cette rubrique explique comment lire un segment d’un fichier multimédia dans MFPlay, en définissant les heures de démarrage et d’arrêt pour la lecture.

Pour lire un clip

  1. Appelez IMFPMediaPlayer :: CreateMediaItemFromURL ou IMFPMediaPlayer :: CreateMediaItemFromObject pour créer un élément multimédia pour le fichier.
  2. Si vous le souhaitez, vous pouvez connaître la durée totale du fichier, comme décrit dans Comment faire pour connaître la durée de lecture.
  3. Appelez IMFPMediaItem :: SetStartStopPosition pour définir les heures de début et de fin. L’heure d’arrêt ne doit pas dépasser la durée du fichier.
  4. Appelez IMFPMediaPlayer :: SetMediaItem pour démarrer la lecture.

L’exemple suivant utilise la version de blocage de CreateMediaItemFromURL. Si la version non bloquante est utilisée, le code qui apparaît après CreateMediaItemFromURL doit être placé dans le gestionnaire pour le _ type d’événement MFP _ _ MEDIAITEM _ created Event. Pour plus d’informations sur les événements dans MFPlay, consultez réception d’événements à partir du lecteur.

Pour connaître la durée du fichier, cet exemple appelle la GetPlaybackDuration fonction indiquée dans la rubrique Comment faire pour connaître la durée de lecture.

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

MFPlay requiert Windows 7.

Utilisation de MFPlay pour la lecture audio/vidéo