재생 기간을 가져오는 방법
[이 페이지와 연결된 기능인 MFPlay는 레거시 기능입니다. 그것은 MediaPlayer와 IMFMediaEngine에 의해 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11에 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer 및 IMFMediaEngine을 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용한 기존 코드를 다시 작성하여 새 API를 사용하는 것을 추천합니다.]
이 항목에서는 MFPlay를 사용하여 미디어 파일의 재생 기간을 가져오는 방법을 설명합니다.
재생 기간을 얻으려면
- IMFPMediaPlayer::CreateMediaItemFromURL 또는 IMFPMediaPlayer::CreateMediaItemFromObject를 호출하여 파일에 대한 미디어 항목을 만듭니다.
- IMFPMediaItem::GetDuration을 호출 합니다. 첫 번째 매개 변수의 MFP_POSITIONTYPE_100NS 지정합니다. 기간은 LARGE_INTEGER 값을 포함하는 PROPVARIANT로 반환됩니다. 기간은 100나노초 단위로 제공됩니다.
다음 예제에서는 2단계를 보여줍니다.
#include <propvarutil.h>
HRESULT GetPlaybackDuration(IMFPMediaItem *pItem, ULONGLONG *phnsDuration)
{
PROPVARIANT var;
HRESULT hr = pItem->GetDuration(MFP_POSITIONTYPE_100NS, &var);
if (SUCCEEDED(hr))
{
hr = PropVariantToUInt64(var, phnsDuration);
PropVariantClear(&var);
}
return hr;
}
요구 사항
MFPlay에는 Windows 7이 필요합니다.
관련 항목