DirectShow DirectShow 레퍼런스 인터페이스 IMediaPosition [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
스트림내의 위치를 시크 하는 메서드를 갖는다.
IMediaSeeking 인터페이스는 이 인터페이스를 강화하고 있다. C/C++ 로 쓰여진 애플리케이션은 IMediaPosition 대신에 IMediaSeeking 를 사용해야 하는 것이다. 그러나,IMediaSeeking 는 Automation 와 호환성이 없기 때문에, Microsoft® Visual Basic® 로 쓰여진 애플리케이션은 대신에 IMediaPosition 를 사용해야 한다.
이 인터페이스는 각각의 필터가 실시하는 것과 같게 필터 그래프 매니저에 의해 공개되고 있다. 애플리케이션은 IMediaPosition 인터페이스 포인터를 필터로부터는 아니고 필터 그래프 매니저로부터 취득해야 한다. 필터 그래프 매니저는, 메서드 호출을 모든 렌더링 필터에 할당한다. 렌더링 필터는 그 호출을 소스 필터에의 업 스트림에 전달한다. 이벤트의 이 순서에 의해 모든 스트림은 동기 된다.
배포한 호출이 에러를 돌려주면 필터 그래프 매니저는 받은 최초의 에러값을 돌려준다. 이 경우, 배포한 호출의 몇개인가가 성공하고 있을 가능성이 있다. 그러나, 배포한 모든 호출이 E_NOTIMPL 를 돌려줄 때까지, 필터 그래프는 E_NOTIMPL 를 돌려주지 않는다. 그래프내의 적어도 1 개의 필터가 그 메서드를 처리 하면, 필터 그래프 매니저는 E_NOTIMPL 를 돌려주지 않는다.
필터 개발자 : 이 메서드를 처리 해서는 안 된다. 대신에 IMediaSeeking 를 처리 하는 것. 그 필터가 IMediaSeeking 를 지원 하는 경우, 필터 그래프 매니저는 자동적으로 IMediaPosition 에의 호출을 처리한다.
IMediaPosition 인터페이스는,IDispatch 로부터 계승하는 메서드 이외에 이하의 메서드도 공개한다.
메서드 | 설명 |
get_Duration | 스트림의 시간폭을 얻어온다. |
put_CurrentPosition | 스트림의 합계 시간폭을 기준으로 하는, 현재의 위치를 설정한다. |
get_CurrentPosition | 스트림의 합계 시간폭을 기준으로 하는, 현재의 위치를 얻어온다. |
get_StopTime | 스트림의 시간폭을 기준으로서 재생이 정지하는 타임을 얻어온다. |
put_StopTime | 스트림의 전시간폭을 기준으로서 재생이 정지하는 타임을 설정한다. |
get_PrerollTime | 시작 위치전에 큐에 들어가는 데이터의 양을 얻어온다. |
put_PrerollTime | 시작 위치전에 큐에 들어가는 데이터의 양을 설정한다. |
put_Rate | 재생 레이트를 설정한다. |
get_Rate | 재생 레이트를 얻어온다. |
CanSeekForward | 필터 그래프가 스트림의 순서 방향으로 시크 가능한가 어떤가를 확인한다. |
CanSeekBackward | 필터 그래프가 스트림의 역방향으로 시크 가능한가 어떤가를 확인한다. |