1 / 12

V Player convinent video explorer

V Player convinent video explorer. 03309331 이웅주. 목차. 기능 구현 방법 개발 도구 구조 구현 스크린샷 개선할 사항. Main video. Preview video. Navigation bar. 기능. 편리한 탐색 기능 트랙바에 커서를 올려놓아 해당 시점의 영상을 별도 창으로 플레이. 구현 방법. VMR windowless control 을 사용 : VMR Player 샘플 참조 하나의 비디오 파일을 두 개의 비디오 관리 클래스로 읽어들인다 .

makani
Download Presentation

V Player convinent video explorer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. V Playerconvinent video explorer 03309331 이웅주

  2. 목차 • 기능 • 구현 방법 • 개발 도구 • 구조 • 구현 • 스크린샷 • 개선할 사항

  3. Main video Preview video Navigation bar 기능 • 편리한 탐색 기능 • 트랙바에 커서를 올려놓아 해당 시점의 영상을 별도 창으로 플레이

  4. 구현 방법 • VMR windowless control을 사용: VMR Player 샘플 참조 • 하나의 비디오 파일을 두 개의 비디오 관리 클래스로 읽어들인다. • 하나는 메인, 하나는 프리뷰 용으로 사용하고 이들을 관리할 클래스를 구현한다.

  5. 개발 도구 • IDE/Compiler • Visual C++ 2005 Express • SDK • Microsoft Platform SDK for Windows Server 2003 R2

  6. 구조 • 제어를 쉽게 하기 위해 Manager 클래스를 통해 세부 작업을 추상화시킴 Send event to Manager Manager : Manager trackBar : TrackBar control control _movie : Movie _moviePreview: Movie Vplayer의 객체 다이어그램

  7. 구현: 프리뷰 윈도우 • Windowless 모드에서는 두 개의 비디오 화면을 겹칠 경우, 깜박거림(flicker) 현상이 발생함. • 이를 해결하려면 Renderless 모드를 사용해야 하나, 자료 부족으로 인한 기술적 어려움으로 사용하지 못함: 두 개의 비디오 스트림을 하나의 출력으로 composite하는 문제. 이를 위해 Image Compositor를 커스터마이징해야함 • 대안으로 Windowless 모드로 구성하되, 메인과 프리뷰 화면이 겹쳐지지 않도록 구성

  8. 구현: 트랙바 처리 • 트랙바는 WM_MOUSEMOVE 이벤트를 처리하지 않음: 포커스있는 이벤트만 처리 가능 • 메시지 루프 때마다 트랙바의 onMouseMove()를 호출하여 커서의 현재 위치가 트랙바인지 검사하고 처리 • 이벤트 처리를 단순화하기 위해, 별도의 클래스로 구성

  9. 구현: 인터페이스 처리 단순화 • 인터페이스를 일시에 호출하고 해제하는 것은 리소스 관리 측면에서 효율적임 • 그러나 인터페이스가 많이 필요하고, 특정 인터페이스들이 의존 관계에 있을 경우 구조 파악과 관리가 어려워짐 • 이에 인터페이스는 필요할 때 가져오고, 사용 후에는 해제시킴 • 이로써 코드 작성 및 유지보수가 수월해짐: 코드는 전반적으로 증가함

  10. 스크린샷: 일반 플레이

  11. 스크린샷: 프리뷰 모드

  12. 개선할 사항 • 화면 공간 활용을 극대화하기 위해 Renderless 모드 및 custom compositor 사용하여 프리뷰 화면이 겹쳐지도록 구성해야함 • 유저 편의를 위한 컨트롤 필요: 음량 조절 등

More Related