Compartir a través de


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

  1. Llame a IMFPMediaPlayer::CreateMediaItemFromURL o IMFPMediaPlayer::CreateMediaItemFromObject para crear un elemento multimedia para el archivo.
  2. 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.

Uso de MFPlay para reproducción de audio y vídeo