다음을 통해 공유


미디어 파일의 기간을 찾는 방법

미디어 파일의 기간을 찾으려면 다음 단계를 수행합니다.

  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;
}

오디오/비디오 재생