Suchen der Dauer einer Mediendatei
Führen Sie die folgenden Schritte aus, um die Dauer einer Mediendatei zu ermitteln:
- Verwenden Sie den Quell-Resolver, um eine Medienquelle zu erstellen, die die Mediendatei analysieren kann.
- Rufen Sie ÜBER DIE MEDIENQUELLE::CreatePresentationDescriptor auf. Diese Methode gibt den Präsentationsdeskriptor zurück, der den Inhalt der Mediendatei beschreibt.
- Fragen Sie den Präsentationsdeskriptor für das MF _ PD _ DURATION-Attribut ab, indem Sie die ATTRIBUTEAttributes::GetUINT64-Methode aufrufen. Der Wert des Attributs ist , falls vorhanden, die Dateidauer in Einheiten von 100 Nanosekunden.
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;
}