반응형



오늘 대박 늦잠을 잤네요.

춥기도 하고 … 밤새 좀 포스팅 쓴다고 바빴더니… ㅎㅎ


오늘은 코드샘플을 뒤져서 간략한 예제 프로그램을 만들어 볼까 합니다.

너무 이른 듯 하지만!!!!

Media Player!!!!!!!!!!!!!!!!!!!!!!!!!

뭐 거창하게 말해도 이건 그냥 MP3플레이어 라 보시면 됩니다. ㅎㅎㅎ

자 이제 제 스타일을 아셨을 테니 그냥 따라 하시면 됩니다.

빈 프로젝트를 생성합니다. 이름은 그냥 MediaPlayer





일단 빈 프로젝트가 열리면 우리는 사용할 컨트롤이 어느 라이브러리에 속해 있는 지 알아봐야겠습니다.

왜냐?  Toolbox에는 미디어 플레이어가 없거든요

… 네? 있습니다! 졸고 계신 분 있지 않나 해서 한번 테스트 해봤습니다.

아래 보시다시피 MediaElement 가 그런 녀석이죠.




하지만 모두가 아시다시피 마이크로소프트 개발도구에 딸려온 기본 컨트롤은 이상하게 제약이 많았더라…

네! 그래서 찾아봤습니다. VS9.0 기준으로 두 가지로 분류가 나뉘더군요

http://msdn.microsoft.com/ko-kr/library/aa970915(VS.90).aspx

그냥 보세요. ~.~ 다음 포스트에서 두 번째 것을 해볼 테니까요.

MSDN을 따르자면 다음과 같습니다.

오디오 비디오 각각 또는 둘 다 재생하는 도구로는 MediaElement 클래스 와 MediaPlayer 클래스가 사용이 됩니다.

두 클래스는 유사점을 을 가지고 있고 서로 응용해서 쓸 수 있다고 하는군요.

(여기서부터 제 생각 입니다)

하지만 역시나 MediaPlayer 클래스가  MediaElement  클래스보다는 조금 더 동적인 것 같군요.

그래서 두 가지 다 해보겠지만 오늘은 시간상 (벌써 10시 52분 오후!) MediaElement예제를 간단히 해보겠습니다.


MediaElement


MediaElement 컨트롤을 툴 박스에서 디자인으로 드래그엔 드롭, 그리고 동작을 시키기 위한 버튼 을 드래그 앤 드롭.





MediaElement 컨트롤을 좀 키워봤습니다.

이런 모습이네요.

제가 여러 동영상과 음악 링크를 구했습니다.

검색엔진에서 sample avi, movie, mp3 등 쳐보시면 구해 질 수 있는 것 입니다.

http://www.jhepple.com/support/SampleMovies/WindowsMedia.wmv

http://www.jhepple.com/SampleMovies/niceday.wmv

http://www.jhepple.com/SampleMovies/niceday.asf

http://www.robtowns.com/music/blind_willie.mp3


테스트 해 볼 녀석들 입니다.

XAML 파일은 따로 건드리지 않을 거니 바로 비하인드 코드로 가봅시다.
그럼 버튼을 더블 클릭하여 해당 메서드로 이동 고고싱~ 싱나게~!




간단하게 코드를 구성 해 보았습니다.

private void button1_Click(object sender, RoutedEventArgs e)
{
    this.button1.IsEnabled = false;                                                                            // 1

    Uri u = new Uri("http://www.jhepple.com/SampleMovies/niceday.asf");     // 2
    this.mediaElement1.Source = u;                                                                          // 3
    this.mediaElement1.Volume = 100;                                                                       // 4
    this.mediaElement1.Play();                                                                                 // 5
}



간략한 설명!

1. 버튼의 상태를 사용할 수 없게 만들기

2. Uri 객체 u를 생성합니다. 웹에 있는 파일을 로드 하게 되는데 그 주소는

http://www.jhepple.com/SampleMovies/niceday.asf

3. mediaElement1 객체의 Source 라는 Propertie 에 위에 생성한 u를 할당.

4. 혹시나 재생이 되는데 소리가 안 나올까 mediaElement1 객체의 Volume 이라는 Propertie 값을 100 으로!

5. mediaElement1 객체의 재생 메서드 Play();

그리고 디버깅으로 확인 해 보시져~




 


어플리케이션 구동 후 Button을 누르면 사용 불가능 상태로 바뀌는군요. 여기까진 OK!

하지만 재생이 안되네요. 아닙니다. 로딩이 긴 겁니다. 기다려봐요~

여러 번 Button을 눌러 혼선을 줄 사용자를 위해서 첫 코드를 버튼 비활성화 시켰지요.





짠 나왔죠?

사실 약간의 불안함이 있습니다.

에뮬레이터라 그런 것 같기도 하고 프로그래스 바를 만들어 확인해보지도 않아서 자세히는 알 수가 없죠.

그래서 제가 준비해온 mp3링크를 가지고 해보시면 잘 나옴을 알 수 있을 겁니다.

다음 포스트에서는  MediaPlayer 클래스를 사용해 봅시다


반응형

+ Recent posts