파일 클립을 재생하는 방법
[MFPlay는 요구 사항 섹션에 지정된 운영 체제에서 사용할 수 있습니다. 이후 버전에서는 변경되거나 제공되지 않을 수 있습니다. ]
이 항목에서는 재생의 시작 및 중지 시간을 설정하여 MFPlay에서 미디어 파일의 세그먼트를 재생하는 방법을 설명합니다.
파일 클립을 재생하려면
- IMFPMediaPlayer::CreateMediaItemFromURL 또는 IMFPMediaPlayer::CreateMediaItemFromObject를 호출하여 파일에 대한 미디어 항목을 만듭니다.
- 필요에 따라 재생 기간을 가져오는 방법에 설명된 대로 파일 의 총 기간을 가져옵니다.
- IMFPMediaItem::SetStartStopPosition을 호출하여 시작 및 중지 시간을 설정합니다. 중지 시간은 파일 기간을 초과해서는 안됩니다.
- IMFPMediaPlayer::SetMediaItem을 호출하여 재생을 시작합니다.
다음 예제에서는 CreateMediaItemFromURL의 차단 버전을 사용합니다. 비차단 버전을 사용하는 경우 CreateMediaItemFromURL 다음에 표시되는 코드는 MFP_EVENT_TYPE_MEDIAITEM_CREATED 이벤트에 대한 처리기에 배치되어야 합니다. MFPlay의 이벤트에 대한 자세한 내용은 플레이어에서 이벤트 수신을 참조하세요.
파일 기간을 가져오기 위해 이 예제에서는 재생 기간을 가져오는 방법 항목에 표시된 함수를 호출 GetPlaybackDuration
합니다.
HRESULT PlayMediaClip(
IMFPMediaPlayer *pPlayer,
PCWSTR pszURL,
LONGLONG hnsStart,
LONGLONG hnsEnd
)
{
IMFPMediaItem *pItem = NULL;
PROPVARIANT varStart, varEnd;
ULONGLONG hnsDuration = 0;
HRESULT hr = pPlayer->CreateMediaItemFromURL(pszURL, TRUE, 0, &pItem);
if (FAILED(hr))
{
goto done;
}
hr = GetPlaybackDuration(pItem, &hnsDuration);
if (FAILED(hr))
{
goto done;
}
if ((ULONGLONG)hnsEnd > hnsDuration)
{
hnsEnd = hnsDuration;
}
hr = InitPropVariantFromInt64(hnsStart, &varStart);
if (FAILED(hr))
{
goto done;
}
hr = InitPropVariantFromInt64(hnsEnd, &varEnd);
if (FAILED(hr))
{
goto done;
}
hr = pItem->SetStartStopPosition(
&MFP_POSITIONTYPE_100NS,
&varStart,
&MFP_POSITIONTYPE_100NS,
&varEnd
);
if (FAILED(hr))
{
goto done;
}
hr = pPlayer->SetMediaItem(pItem);
done:
SafeRelease(&pItem);
return hr;
}
요구 사항
MFPlay에는 Windows 7이 필요합니다.
관련 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기