IMFPMediaItem::SetStartStopPosition 메서드(mfplay.h)

중요 되지 않는. 이 API는 향후 Windows 릴리스에서 제거될 수 있습니다. 애플리케이션은 재생을 위해 미디어 세션을 사용해야 합니다.
 

미디어 항목의 시작 및 중지 시간을 설정합니다.

구문

HRESULT SetStartStopPosition(
  [in] const GUID        *pguidStartPositionType,
  [in] const PROPVARIANT *pvStartValue,
  [in] const GUID        *pguidStopPositionType,
  [in] const PROPVARIANT *pvStopValue
);

매개 변수

[in] pguidStartPositionType

시작 위치의 시간 단위입니다. 설명 부분을 참조하세요. 이 매개 변수는 NULL일 수 있습니다.

[in] pvStartValue

시작 위치입니다. 이 매개 변수의 의미와 데이터 형식은 pguidStartPositionType 매개 변수로 표시됩니다. pguidStartPositionTypeNULL이고 그렇지 않으면 NULL일 수 없는 경우 pvStartValue 매개 변수는 NULL이어야 합니다.

[in] pguidStopPositionType

중지 위치의 시간 단위입니다. 설명 부분을 참조하세요. 이 매개 변수는 NULL일 수 있습니다.

[in] pvStopValue

위치를 중지합니다. 이 매개 변수의 의미와 데이터 형식은 pguidStopPositionType 매개 변수로 표시됩니다. pguidStopPositionTypeNULL이고 그렇지 않으면 NULL일 수 없는 경우 pvStopValue 매개 변수는 NULL이어야 합니다.

반환 값

이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.

반환 코드 Description
S_OK
메서드가 성공했습니다.
E_INVALIDARG
인수가 잘못되었습니다.
MF_E_OUT_OF_RANGE
시작 또는 중지 시간이 잘못되었습니다. 다음 중 어느 것이든 이 오류가 발생할 수 있습니다.
  • 시간이 0보다 작습니다.
  • 미디어 항목의 총 기간보다 큰 시간입니다.
  • 시작 시간보다 더 적은 중지 시간입니다.

설명

기본적으로 미디어 항목은 파일의 처음부터 끝까지 재생됩니다. 이 메서드는 시작 시간 및/또는 중지 시간을 조정합니다.

  • 시작 시간을 설정하려면 pguidStartPositionTypepvStartValueNULL이 아닌 값을 전달합니다.
  • 중지 시간을 설정하려면 pguidStopPositionTypepvStopValueNULL이 아닌 값을 전달합니다.
pguidStartPositionTypepguidStopPositionType 매개 변수는 사용되는 시간 단위를 제공합니다. 현재 지원되는 유일한 값은 MFP_POSITIONTYPE_100NS.
Description
MFP_POSITIONTYPE_100NS 100나노초 단위. 시간 매개 변수(pvStartValue 또는 pvStopValue)는 다음 데이터 형식을 사용합니다.
  • 변형 형식(vt): VT_I8
  • Variant 멤버: hVal
이전에 설정한 시간을 지우려면 빈 PROPVARIANT (VT_EMPTY)를 사용합니다.
 

조정된 시작 및 중지 시간은 다음에 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

추가 정보

파일 클립을 재생하는 방법

IMFPMediaItem

오디오/비디오 재생에 MFPlay 사용