Cómo obtener la duración de la reproducción
[La característica asociada con esta página, MFPlay, es una característica heredada. Se ha reemplazado por MediaPlayer y IMFMediaEngine. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda que el nuevo código use MediaPlayer y IMFMediaEngine en vez de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible].
En este tema se explica cómo obtener la duración de reproducción de un archivo multimedia mediante MFPlay.
Cómo obtener la duración de la reproducción
- Llame a IMFPMediaPlayer::CreateMediaItemFromURL o IMFPMediaPlayer::CreateMediaItemFromObject para crear un elemento multimedia para el archivo.
- Llame a IMFPMediaItem::GetDuration. Indique MFP_POSITIONTYPE_100NS en el primer parámetro. La duración se devuelve como un PROPVARIANT que contiene un valor LARGE_INTEGER. La duración se refleja en unidades de 100 nanosegundos.
En el ejemplo siguiente se ve el paso 2:
#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;
}
Requisitos
MFPlay requiere Windows 7.
Temas relacionados