IMFPMediaItem::SetStartStopPosition 메서드(mfplay.h)
미디어 항목의 시작 및 중지 시간을 설정합니다.
구문
HRESULT SetStartStopPosition(
[in] const GUID *pguidStartPositionType,
[in] const PROPVARIANT *pvStartValue,
[in] const GUID *pguidStopPositionType,
[in] const PROPVARIANT *pvStopValue
);
매개 변수
[in] pguidStartPositionType
시작 위치의 시간 단위입니다. 설명 부분을 참조하세요. 이 매개 변수는 NULL일 수 있습니다.
[in] pvStartValue
시작 위치입니다. 이 매개 변수의 의미와 데이터 형식은 pguidStartPositionType 매개 변수로 표시됩니다. pguidStartPositionType이 NULL이고 그렇지 않으면 NULL일 수 없는 경우 pvStartValue 매개 변수는 NULL이어야 합니다.
[in] pguidStopPositionType
중지 위치의 시간 단위입니다. 설명 부분을 참조하세요. 이 매개 변수는 NULL일 수 있습니다.
[in] pvStopValue
위치를 중지합니다. 이 매개 변수의 의미와 데이터 형식은 pguidStopPositionType 매개 변수로 표시됩니다. pguidStopPositionType이 NULL이고 그렇지 않으면 NULL일 수 없는 경우 pvStopValue 매개 변수는 NULL이어야 합니다.
반환 값
이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.
반환 코드 | Description |
---|---|
|
메서드가 성공했습니다. |
|
인수가 잘못되었습니다. |
|
시작 또는 중지 시간이 잘못되었습니다. 다음 중 어느 것이든 이 오류가 발생할 수 있습니다.
|
설명
기본적으로 미디어 항목은 파일의 처음부터 끝까지 재생됩니다. 이 메서드는 시작 시간 및/또는 중지 시간을 조정합니다.
- 시작 시간을 설정하려면 pguidStartPositionType 및 pvStartValue에 NULL이 아닌 값을 전달합니다.
- 중지 시간을 설정하려면 pguidStopPositionType 및 pvStopValue에 NULL이 아닌 값을 전달합니다.
값 | Description |
---|---|
MFP_POSITIONTYPE_100NS | 100나노초 단위. 시간 매개 변수(pvStartValue 또는 pvStopValue)는 다음 데이터 형식을 사용합니다.
|
조정된 시작 및 중지 시간은 다음에 IMFPMediaPlayer::SetMediaItem 이 이 미디어 항목과 함께 호출될 때 사용됩니다. 플레이어에서 미디어 항목이 이미 설정된 경우 SetMediaItem 을 다시 호출하지 않는 한 변경이 수행되지 않습니다.
예제
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;
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 R2 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | mfplay.h |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기