Share via


Cómo buscar la duración de un archivo multimedia

Para buscar la duración de un archivo multimedia, realice los pasos siguientes:

  1. Use el Solucionador de origen para crear un origen multimedia que pueda analizar el archivo multimedia.
  2. Llame a IMFMediaSource::CreatePresentationDescriptor en el origen multimedia. Este método devuelve el descriptor de presentación que describe el contenido del archivo multimedia.
  3. Consulte el descriptor de presentación del atributo MF_PD_DURATION llamando al método IMFAttributes::GetUINT64 . El valor del atributo, si está presente, es la duración del archivo en unidades de 100 nanosegundos.
HRESULT GetSourceDuration(IMFMediaSource *pSource, MFTIME *pDuration)
{
    *pDuration = 0;

    IMFPresentationDescriptor *pPD = NULL;

    HRESULT hr = pSource->CreatePresentationDescriptor(&pPD);
    if (SUCCEEDED(hr))
    {
        hr = pPD->GetUINT64(MF_PD_DURATION, (UINT64*)pDuration);
        pPD->Release();
    }
    return hr;
}

Reproducción de audio y vídeo