반응형



아 그냥 자기 뭣해서 바로 포스팅 합니다.

오늘 할 것은 Media Player 만들기 2번째

MediaPlayer 라는 녀석을 써 보려 합니다.


- MediaPlayer

좋은 자료를 찾았습니다. 우리가 할게 이것을 응용한 것이죠 ~_~.
http://msdn.microsoft.com/ko-kr/library/ff634558.aspx


백문이 불여일코딩 입니다. 따라 해 보시죠~

일단 프로젝트를 만듭시다. 템플릿은 기본으로오~




디자이너에서 TextBox를 이렇게, 그리고 버튼을 놓습니다.

TextBox 컨트롤의 명은 textBox1 일 텐데 Text Propertie 를 수정합니다

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

요 녀석으로 !

그럼 아래와 같이 되겠죠?




자 바로 MediaPlayer를 생성했는데 없다고 하네요?

MediaPlayer 라는 타입 또는 이름의 네임스페이스가 없다는 메시지입니다 (해석 어렵지 않죠?)

그럼 그 녀석이 있는 걸 참조로(Reference) 추가를 해야겠군요. 이건 C#, 아니 VS.NET의 기본이죠!





제가 다 찾아놨습니다. 아래와 같이 따라 하시면 되겠습니다.

[시술 전]



[시술 과정 1]



[시술과정 2]



[시술 과정 3 - 그냥 넘어갑시다… 피곤해서 ㅎㅎ]



[시술 후]



자 참조를 추가했으면 네임스페이스를 선언해야 합니다

아래와 같이 선언 ㄲㄲ




추가되는 텍스트는 아래에서 긁으셔도 됩니다.

익숙하신 분은 using 스페이스 Microsoft. 찍어서 찾아서 하시겠지요. 코드 헬퍼 짱 입니다요~

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Media;

그리고 이렇게 button1 을 더블 클릭하여 클릭 메서드를 만든 후

다음과 같이 코드를 추가합니다.



private void button1_Click(object sender, RoutedEventArgs e)
{
     FrameworkDispatcher.Update();                          // 1

     Uri uriStreaming = new Uri(this.textBox1.Text);        // 2
     Song song = Song.FromUri("StreamingUri", uriStreaming);// 3

     MediaPlayer.Play(song);                                // 4

}



또 간략한 설명!



1. 파워의 상태나 미디어가 업데이트 되면 호출해줘야 한다는 군요.

    msdn코드샘플엔 없던데, 에뮬레이터 오류인지 모르겠군요. 일단 넣어야 예외가 발생하지 않으므로 추가

2. Uri의 객체 uriStreaming 에 textBox의 Text Propertie 의 값을 인자로 하는 Uri객체를 동적으로 만들어 할당

3. Song의 객체 song에 Song 클래스의 멤버 메서드  FromUri에 위와 같은 두 인자를 넣은 리턴 결과를 할당.

   - 말은 어렵지만 Song을 생성한 후 우리가 원하는 Uri값으로 된 Song을 만들어 할당한 겁니다.-

4. MediaPlayer.Play 호출 인자는 우리가 만든 지역변수  song




MediaPlayer는 왜 변수화 하지 않느냐라는 질문을 하실 수도 있는데,

MediaPlayer를 찍고 go to Difinition 해보시면 Static Class로 정의 되어 있는 것을 보실 수 있을 겁니다.




현재 API상으로는 MediaPlayer 클래스는 음악 파일만 재생이 되는 거 같군요.

VS9.0 에서의 MediaPlayer와 차이가 있는가 봅니다.

Reference를 잘 찾아보질 않아서 대충 말하는 겁니다. 정답은 아니에요~_~




그럼 디버그로 확인해보죠

 




뭐 당연히 됩니다

에뮬레이터를 종료할 때 문제가 생기는 것을 제외하고는요.




제가 에뮬레이터의 문제라고 생각하는 이유가

http://msdn.microsoft.com/ko-kr/library/ff634558.aspx 

위 자료를 찾은 곳이

http://msdn.microsoft.com/ko-kr/library/microsoft.xna.framework.media.mediaplayer.aspx

이곳의 하위 인데 말이죠.

문서 하단을 보시면


Platforms


Xbox 360, Windows 7, Windows Vista, Windows XP, Windows Phone 7



이 보입니다.

ㅎㅎ 버그가 아니라면 되야 정상이란 거죠 ~_~

그러니 에뮬레이터 문제로 치부 ㄲㄲ





그럼 이제 뭘 포스팅 할지 내일 또 고민해 봐야겠습니다.

여러분 다음 포스트에서 만나요~~~


ps. 너무 피곤해서 대충 썼으니 이해 바래요 ㅠㅠ

반응형

+ Recent posts