Partilhar via


Como obter a duração da reprodução

[O recurso associado a esta página, MFPlay, é um recurso herdado. Foi substituído pelo MediaPlayer e IMFMediaEngine. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda enfaticamente que o novo código use o MediaPlayer and IMFMediaEngine em vez de DirectShow quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito, se possível, para usar as novas APIs.

Este tópico descreve como obter a duração da reprodução de um arquivo de mídia usando o MFPlay.

Para obter a duração da reprodução

  1. Call IMFPMediaPlayer::CreateMediaItemFromURL ou IMFPMediaPlayer::CreateMediaItemFromObject para criar um item de mídia para o arquivo.
  2. Chame IMFPMediaItem::GetDuration. Especifique MFP_POSITIONTYPE_100NS para o primeiro parâmetro. A duração é retornada como um PROPVARIANT que contém um valor LARGE_INTEGER. A duração é dada em unidades de 100 nanossegundos.

O exemplo a seguir mostra a etapa 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

A MFPlay requer o Windows 7.

Usar a MFPlay para reprodução de áudio/vídeo