DirectShow DirectShow 레퍼런스 인터페이스 IMediaSeeking GetCurrentPosition   [목차열람] [주소복사] [슬롯비우기]
IMediaSeeking::GetCurrentPosition
 
Microsoft DirectX 9.0

IMediaSeeking::GetCurrentPosition

GetCurrentPosition 메서드는, 스트림의 합계 시간폭을 기준으로 하는, 현재의 위치를 얻어온다.

구문

HRESULT GetCurrentPosition(
  LONGLONG *pCurrent
);

파라미터

pCurrent

[out] 현재 위치를 받는 변수의 포인터 (현재의 타임 포맷의 단위).

반환값

HRESULT 값을 돌려준다. 가능한 값은 다음과 같다.

설명
S_OK 성공.
E_NOTIMPL 메서드는 지원하지 않는다.
E_POINTER NULL 포인터 인수.

주의

이 메서드는 재생이 도달한 현재 위치를 돌려준다. 그 값은 재생 속도와 시작 타임을 무시한다. 예를 들어, 속도에 2.0 을 설정해, 시작 타임이 5 초라면 하면, 그래프를 4 초 실행 하면 현재의 위치는 9.0 초가 된다 (5 + 4 x 2.0). 반환값은, 현재의 타임 포맷의 단위로 나타낸다. 현재의 타임 포맷을 확인하려면 ,GetTimeFormat 메서드를 호출하는 것.

그래프가 포즈 또는 정지하고 있는 경우, 현재 위치는 재생이 재개되는 포인트가 된다.

필터 그래프 매니저는, 현재의 스트림 타임부터 위치를 계산하므로, 그래프의 필터에 조회할 것은 없다. 파일의 재생에서는, 이것에 의해 재생이 스트림 타임에 동기 되기 (위해)때문에, 정확한 결과를 얻을 수 있다. 파일의 쓰기에서는, 결과는 정확하게는 안 된다. 파일을 기입하는 그래프로 현재의 위치를 얻어오려면, 멀티플렉서 필터에 조회하는 것. 다만, 라이브 캡춰에서는, 위치는 적절한 것은 되지 않는다.

반환값은, 현재의 타임 포맷의 단위로 나타낸다. 디폴트의 타임 포맷은,REFERENCE_TIME 단위 (100 나노초)이다. 타임 포맷을 변경하려면 ,IMediaSeeking::SetTimeFormat 메서드를 사용한다.

참조

↑TOP