Share via


Comment rechercher la durée d’un fichier multimédia

Pour rechercher la durée d’un fichier multimédia, procédez comme suit :

  1. Utilisez le programme de résolution de source pour créer une source multimédia qui peut analyser le fichier multimédia.
  2. Appelez IMFMediaSource::CreatePresentationDescriptor sur la source multimédia. Cette méthode retourne le descripteur de présentation qui décrit le contenu du fichier multimédia.
  3. Interrogez le descripteur de présentation pour l’attribut MF_PD_DURATION en appelant la méthode IMFAttributes::GetUINT64 . La valeur de l’attribut, le cas échéant, est la durée du fichier en unités de 100 nanosecondes.
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;
}

Lecture audio/vidéo