Ermitteln der Dauer einer Mediendatei
Führen Sie die folgenden Schritte aus, um die Dauer einer Mediendatei zu ermitteln:
- Verwenden Sie den Quelllöser , um eine Medienquelle zu erstellen, die die Mediendatei analysieren kann.
- Rufen Sie IMFMediaSource::CreatePresentationDescriptor für die Medienquelle auf. Diese Methode gibt einen Präsentationsdeskriptor zurück, der den Inhalt der Mediendatei beschreibt.
- Fragen Sie den Präsentationsdeskriptor für das attribut MF_PD_DURATION ab, indem Sie die IMFAttributes::GetUINT64-Methode aufrufen. Der Wert des Attributs, falls vorhanden, ist 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;
}
Zugehörige Themen