[MediaPlayer] 6. Play Progressbar

Downloader Progressbar 부분과 Play Progressbar 부분으로 강좌가 2개로 나누어졌습니다. 지난강좌에서는  Downloader Progressbar에 대해서 알아보았고 이번시간에는 Play Progressbar 강좌를 계속해서 진행하도록 하겠습니다.

xaml 코드는 지난 강좌에서 모두 작성하였습니다. Play Progressbar에 애니메이션을 적용하기 위해서는 StoryBoard가 추가 되어야 합니다.

사용자 삽입 이미지

0.01초마다 1번씩 Interval이 발생합니다.

애니메이션에 대해서 좀더 자세히 공부하시고 싶다면 공도님의 블로그 및 실버라이트카페를 참고하시기 바랍니다.

 - 공도님 블로그 : http://gongdo.tistory.com/

 - 실버라이트 카페 : http://cafe.naver.com/mssilverlight.cafe

사용자 삽입 이미지

Page_Loaded 이벤트에 Play Progressbar 관련 이벤트를 선언합니다.
사용자 삽입 이미지

PlayProgress_MouseLeftButtonDown 이벤트는 PlayProgressbar를 클릭했을때 PlayLocation을 기준으로 왼쪽 동영상의 앞부분으로 재생위치가 이동을 합니다.

DownProgress_MouseLeftButtonDown 이벤트는 Downloader를 클릭했을때 PlayLocation을 기준으로 오른쪽 동영상의 뒷으로 재생위치가 이동을 합니다.

사용자 삽입 이미지

드레그 앤 드롭 기능을 구현하기 위해서는 2개의 변수가 필요합니다. MouseDrogBeginX는 PlayLocation이 가로로 움직이므로 그에 대한 마우스 X좌표 값입니다. MouseDrogDown 변수는 마우스가 드롭 상태인지 아닌지 체크하기 위한 Bool 형태의 값입니다.

사용자 삽입 이미지

이 코드는 PlayLocation을 마우스 드레그 앤 드롭 하여 원하는 위치로 재생위치를 이동하는 이벤트 입니다.

마우스의 드레그 앤 드롭에 관한 자세한 내용은 네이버의 실버라이트카페의 Drag & Drop 의 구현 강좌를 참고하시기 바랍니다.

사용자 삽입 이미지

timerPlayProgress_Completed 이벤트는 애니메이션이 종료하고 발생하는 이벤트입니다. 그리고 동영상 플레이어의 제어버튼 3개(Play, Pause, Stop)에 애니메이션의 시작과 종료, 일시정지에 메소드를 집어넣어야 합니다.
사용자 삽입 이미지


3개의 이벤트에 애니메이션 메소드를 각각 추가하였습니다.

MultiMedia_CurrentStateChanged 이벤트는 동영상의 재생상태를 출력하기 위한 이벤트 입니다. CurrentStateChanged 관련 글입니다.

http://blogs.msdn.com/silverlight_sdk/archive/2007/05/31/using-playlists-in-silverlight.aspx

사용자 삽입 이미지

Page.xaml 파일에 추가된 코드입니다. Visibility="Collapsed" 속성은 화면에서 보이지 않게 기본설정합니다. MultiMedia_CurrentStateChanged 이벤트에서 현재의 재생 상태를 파악하여 동영상이 종료되면 Play Progressbar 및 PlayLocation 같은 현재 진행 상태를 동영상의 처음위치로 초기화 하는데 필요한 이벤트가
MultiMedia_CurrentStateChanged 입니다.

여기까지 5회와 6회에 걸쳐서 동영상 재생관련 강좌를 진행하였습니다. 지금까지의 강좌중에 가장 시간이 오래 걸린듯 합니다.  다음강좌에서는 사운드 조절에 관한 부분을 다루어 보겠습니다.

수고하셨습니다.~~

'닷넷 프로그래밍(~2012)' 카테고리의 다른 글

[MediaPlayer] 10. Chapters[1-2:Expression Encoder]  (0) 2007.09.07
[MediaPlayer] 8. Timer  (0) 2007.09.07
[MediaPlayer] 7. Volume  (0) 2007.09.07
[MediaPlayer] 6. Play Progressbar  (0) 2007.09.06
[MediaPlayer] 5. Downloader Progressbar  (0) 2007.09.06
[Mediaplayer] 4. Player Control  (0) 2007.09.06
[MediaPlayer] 3. Full Screen  (0) 2007.09.06
OCX 등록  (0) 2007.09.06