如何尋找媒體檔案的持續時間

若要尋找媒體檔案的持續時間,請執行下列步驟:

  1. 使用 來源解析程式 建立可剖析媒體檔案的媒體來源。
  2. 在媒體來源上呼叫 IMFMediaSource::CreatePresentationDescriptor 。 這個方法會傳回描述媒體檔案內容的簡報描述項。
  3. 呼叫IMFAttributes::GetUINT64方法,以查詢MF_PD_DURATION屬性的表示描述項。 如果存在,則屬性值是 100 奈秒單位的檔案持續時間。
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;
}

音訊/視訊播放