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
- Call IMFPMediaPlayer::CreateMediaItemFromURL ou IMFPMediaPlayer::CreateMediaItemFromObject para criar um item de mídia para o arquivo.
- 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.
Tópicos relacionados