Procédure d’obtention de la durée de lecture
[La fonctionnalité associée à cette page, MFPlay, est une fonctionnalité héritée. Elle a été remplacée par MediaPlayer et IMFMediaEngine. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Lorsque cela est possible, Microsoft recommande vivement l'utilisation par le nouveau code de MediaPlayer et IMFMediaEngine au lieu de DirectShow. Microsoft recommande, si possible, la réécriture du code existant qui utilise les API héritées pour être à jour avec les nouvelles API.]
Cette rubrique explique la procédure d'obtention de la durée de lecture d’un fichier multimédia à l’aide de MFPlay.
Obtention de la durée de lecture
- Appelez IMFPMediaPlayer::CreateMediaItemFromURL ou IMFPMediaPlayer::CreateMediaItemFromObject pour créer un élément multimédia pour le fichier.
- Appelez IMFPMediaItem::GetDuration. Spécifiez MFP_POSITIONTYPE_100NS pour le premier paramètre. La durée est retournée sous la forme d’un PROPVARIANT qui contient une valeur LARGE_INTEGER . La durée est donnée en unités de 100 nanosecondes.
L'exemple suivant illustre la 2ème étape:
#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;
}
Spécifications
MFPlay nécessite Windows 7.
Rubriques connexes