광고 수익은 기아대책 서울본부에 기부합니다.

2013.06.17 12:29 안드로이드/소스

출처 : http://theeye.pe.kr/entry/example-of-image-crop-with-camera-and-album-picker-on-android

 

 

CameraCropExample.zip

'안드로이드 > 소스' 카테고리의 다른 글

[Android] Camera 호출 후 이미지 Crop하기 예제  (0) 2013.06.17
posted by Town One townone

댓글을 달아 주세요

2013.06.04 18:18 잡담

출처 : http://cafe.naver.com/cancelone/14601

 

모니터링 체크리스트

측정항목

주요 핵심 포인트

배점

점수

비고

수신
(5
)

ㅇ 전화벨이 몇번 울린 후 받았는가?
  
※ 핵심 : 3회 울리기 전에받는다.

1~3

5

 

4

3

5

1

6회이상

0

최초인사
(10
)

ㅇ 안녕하십니까! 상호 ㅇㅇㅇ 입니다.

첫인사+회사명+이름

10

 

   (첫인사)      (회사/부서명)       (이름)

2부분만 실시

6

<늦게 받았을 경우에는>

1부분만 실시

2

"늦게 받아 죄송합니다.! 상호 ㅇㅇㅇ입니다."
 (
여보세요!, ! 등은 최초인사 없음으로 간주)

최초인사 없음

0

최초인사태도
(10
)

ㅇ 밝은 솔톤 :' 가장 친절한 톤

+발음+속도

10

 

ㅇ 정확한 발음의 인사 : 인사내용 명료히 들렸는지 여부

2개 항목 충족

6

ㅇ 적절한 속도의 인사 : 1초당 한항목씩의 속도

1개 항목 충족

2

   )감사합니다(1), 00(1), 000입니다(1)

0개 항목 충족

0

교환상태
(10
)

ㅇ 양해의 말 + 전화번호안내

2개항목 충족

0

 

  (죄송합니다. 담당자를 연결해드리겠습니다)

1개항목 충족

-5

'잠시만요' 양해의 말이 아님

0개항목 충족

-10

종료인사
(15
)

ㅇ 감사합니다. 고맙습니다.

인사함

15

 

  (좋은 하루 되세요!)

단축인사

9

'!, 알겠습니다./수고하세요!'의 경우 단축인사로 간주

인사안함

0

종료인사태도
(5
)

ㅇ 밝은 톤 :' 가장 친절한 톤

+발음+속도

5

 

ㅇ 정확한 발음의 인사 : 인사내용 명료히 들렸는지 여부

2개 항목 충족

3

ㅇ 적절한 속도의 인사 : 1초당 한항목씩의 속도

1개 항목 충족

1

0개 항목 충족

0

종료시점
(10
)

ㅇ 종료인사 3초후에 종료하는지 여부

종료후

10

 

선종료

0

답변충실
(10
)

ㅇ 정보의 정확성, 업무의 숙지도
ㅇ 찾아주고자 하는 노력 CHK

 

10

 

 

6

 

0

답변성실
(10
)

Lead하는 통화(적극적인 재질문, 연결 등)

 

10

 

 

6

 

3

 

0

친절성
(15
)

ㅇ 말을 자르지 않고 끝까지 듣고 경어를 사용한다
ㅇ 고객님, 성샌님 등 적절한 호칭을 사용한다

 

15

 

 

12

 

9

 

6

 

3

대화명료
(10
)

ㅇ 말의 속도가 적절하다

 

10

 

ㅇ 목소리의 크기가 적절하다

 

6

ㅇ 문장의 끝맺음을 확실히 한다

 

2

 

 

0

총점

 

 

 

0

 

'잡담' 카테고리의 다른 글

전신 안마  (0) 2014.07.28
겨울 왕국 Let it go  (0) 2014.01.27
전화 모니터링 체크 리스트 라고 합니다.  (0) 2013.06.04
NS 윤지 - if yoo love me(130521)  (0) 2013.05.24
댄스~  (0) 2013.05.23
손연재 섹시 댄스  (0) 2013.05.09
posted by Town One townone

댓글을 달아 주세요

2013.06.03 18:44 윈도우/참고

http://meyerweb.com/eric/tools/dencoder/

 

posted by Town One townone

댓글을 달아 주세요

2013.05.31 16:20 윈도우/참고


확인한 문제
AGSearchHook Class이(가) Internet Explorer에서 실행 중임AGSearchHook Class이(가) Internet Explorer에서 실행 중임
AGSearchHook Class 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Alot Toolbar이(가) Internet Explorer에서 실행 중임Alot Toolbar이(가) Internet Explorer에서 실행 중임
Alot Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Alot Toolbar Helper이(가) Internet Explorer에서 실행 중임Alot Toolbar Helper이(가) Internet Explorer에서 실행 중임
Alot Toolbar Helper 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
AOL Toolbar이(가) Internet Explorer에서 실행 중임AOL Toolbar이(가) Internet Explorer에서 실행 중임
AOL Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Ask Toolbar이(가) Internet Explorer에서 실행 중임Ask Toolbar이(가) Internet Explorer에서 실행 중임
Ask Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
AVG Safe Search이(가) Internet Explorer에서 실행 중임AVG Safe Search이(가) Internet Explorer에서 실행 중임
AVG Safe Search 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Baidu Toolbar이(가) Internet Explorer에서 실행 중임Baidu Toolbar이(가) Internet Explorer에서 실행 중임
Baidu Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
BitDefender Toolbar이(가) Internet Explorer에서 실행 중임BitDefender Toolbar이(가) Internet Explorer에서 실행 중임
BitDefender Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Blubster Toolbar이(가) Internet Explorer에서 실행 중임Blubster Toolbar이(가) Internet Explorer에서 실행 중임
Blubster Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
PC Tools Browser Guard Toolbar이(가) Internet Explorer에서 실행 중임PC Tools Browser Guard Toolbar이(가) Internet Explorer에서 실행 중임
PC Tools Browser Guard Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Comcast Toolbar이(가) Internet Explorer에서 실행 중임Comcast Toolbar이(가) Internet Explorer에서 실행 중임
Comcast Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Cooliris이(가) Internet Explorer에서 실행 중임Cooliris이(가) Internet Explorer에서 실행 중임
Cooliris 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
CouponBar이(가) Internet Explorer에서 실행 중임CouponBar이(가) Internet Explorer에서 실행 중임
CouponBar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
추가 기능으로 인해 Internet Explorer가 응답하지 않음추가 기능으로 인해 Internet Explorer가 응답하지 않음
문제 있는 추가 기능이 하나 이상 검색되었습니다. 이러한 추가 기능 때문에 Internet Explorer가 응답하지 않을 수 있습니다. 확인됨 
Delicious Toolbar이(가) Internet Explorer에서 실행 중임Delicious Toolbar이(가) Internet Explorer에서 실행 중임
Delicious Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
DoubleD Toolbar이(가) Internet Explorer에서 실행 중임DoubleD Toolbar이(가) Internet Explorer에서 실행 중임
DoubleD Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Earthlink Toolbar Protection BHO이(가) Internet Explorer에서 실행 중임Earthlink Toolbar Protection BHO이(가) Internet Explorer에서 실행 중임
Earthlink Toolbar Protection BHO 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Ebay Toolbar이(가) Internet Explorer에서 실행 중임Ebay Toolbar이(가) Internet Explorer에서 실행 중임
Ebay Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
FoxyTunes Toolbar이(가) Internet Explorer에서 실행 중임FoxyTunes Toolbar이(가) Internet Explorer에서 실행 중임
FoxyTunes Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Google Toolbar이(가) Internet Explorer에서 실행 중임Google Toolbar이(가) Internet Explorer에서 실행 중임
Google Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Google Toolbar Helper이(가) Internet Explorer에서 실행 중임Google Toolbar Helper이(가) Internet Explorer에서 실행 중임
Google Toolbar Helper 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Google Toolbar Notifier BHO이(가) Internet Explorer에서 실행 중임Google Toolbar Notifier BHO이(가) Internet Explorer에서 실행 중임
Google Toolbar Notifier BHO 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Grab Pro Toolbar이(가) Internet Explorer에서 실행 중임Grab Pro Toolbar이(가) Internet Explorer에서 실행 중임
Grab Pro Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
HP Smart Web Printing이(가) Internet Explorer에서 실행 중임HP Smart Web Printing이(가) Internet Explorer에서 실행 중임
HP Smart Web Printing 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
추가 기능으로 Internet Explorer 시작 및 탭 만들기 속도가 느려질 수 있음추가 기능으로 Internet Explorer 시작 및 탭 만들기 속도가 느려질 수 있음
하나 이상의 추가 기능이 검색되었습니다. 이러한 추가 기능 때문에 Internet Explorer 시작 및 탭 만들기 속도가 느려질 수 있습니다. 확인됨 
LBBHO Browser Helper Object이(가) Internet Explorer에서 실행 중임LBBHO Browser Helper Object이(가) Internet Explorer에서 실행 중임
LBBHO Browser Helper Object 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Morpheus Bar Search Assistant이(가) Internet Explorer에서 실행 중임Morpheus Bar Search Assistant이(가) Internet Explorer에서 실행 중임
Morpheus Bar Search Assistant 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
GamesBar이(가) Internet Explorer에서 실행 중임GamesBar이(가) Internet Explorer에서 실행 중임
GamesBar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Orange Toolbar이(가) Internet Explorer에서 실행 중임Orange Toolbar이(가) Internet Explorer에서 실행 중임
Orange Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
PC Confidential 2008이(가) Internet Explorer에서 실행 중임PC Confidential 2008이(가) Internet Explorer에서 실행 중임
PC Confidential 2008 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
PDF Creator이(가) Internet Explorer에서 실행 중임PDF Creator이(가) Internet Explorer에서 실행 중임
PDF Creator 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
PPLive이(가) Internet Explorer에서 실행 중임PPLive이(가) Internet Explorer에서 실행 중임
PPLive 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
PPLive Accelerator이(가) Internet Explorer에서 실행 중임PPLive Accelerator이(가) Internet Explorer에서 실행 중임
PPLive Accelerator 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
PriceGongCtrl Class Browser Helper Object이(가) Internet Explorer에서 실행 중임PriceGongCtrl Class Browser Helper Object이(가) Internet Explorer에서 실행 중임
PriceGongCtrl Class Browser Helper Object 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Quero Toolbar이(가) Internet Explorer에서 실행 중임Quero Toolbar이(가) Internet Explorer에서 실행 중임
Quero Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Roxio Drive Letter Access BHO이(가) Internet Explorer에서 실행 중임Roxio Drive Letter Access BHO이(가) Internet Explorer에서 실행 중임
Roxio Drive Letter Access BHO 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
ReGetBar Toolbar이(가) Internet Explorer에서 실행 중임ReGetBar Toolbar이(가) Internet Explorer에서 실행 중임
ReGetBar Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
RealPlayer Download and Record Plugin이(가) Internet Explorer에서 실행 중임RealPlayer Download and Record Plugin이(가) Internet Explorer에서 실행 중임
RealPlayer Download and Record Plugin 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Skype Plugin이(가) Internet Explorer에서 실행 중임Skype Plugin이(가) Internet Explorer에서 실행 중임
Skype Plugin 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
SmartShopper이(가) Internet Explorer에서 실행 중임SmartShopper이(가) Internet Explorer에서 실행 중임
SmartShopper 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Veoh Web Player Toolbar이(가) Internet Explorer에서 실행 중임Veoh Web Player Toolbar이(가) Internet Explorer에서 실행 중임
Veoh Web Player Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Viewpoint Toolbar이(가) Internet Explorer에서 실행 중임Viewpoint Toolbar이(가) Internet Explorer에서 실행 중임
Viewpoint Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
VMN Toolbar이(가) Internet Explorer에서 실행 중임VMN Toolbar이(가) Internet Explorer에서 실행 중임
VMN Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Weather Channel Toolbar이(가) Internet Explorer에서 실행 중임Weather Channel Toolbar이(가) Internet Explorer에서 실행 중임
Weather Channel Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Xfinity Toolbar이(가) Internet Explorer에서 실행 중임Xfinity Toolbar이(가) Internet Explorer에서 실행 중임
Xfinity Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Xfinity Toolbar Updater이(가) Internet Explorer에서 실행 중임Xfinity Toolbar Updater이(가) Internet Explorer에서 실행 중임
Xfinity Toolbar Updater 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Yahoo! Services & Yahoo! IE Services Button이(가) Internet Explorer에서 실행 중임Yahoo! Services & Yahoo! IE Services Button이(가) Internet Explorer에서 실행 중임
Yahoo! Services & Yahoo! IE Services Button 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Yahoo Toolbar이(가) Internet Explorer에서 실행 중임Yahoo Toolbar이(가) Internet Explorer에서 실행 중임
Yahoo Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Yahoo Toolbar Helper이(가) Internet Explorer에서 실행 중임Yahoo Toolbar Helper이(가) Internet Explorer에서 실행 중임
Yahoo Toolbar Helper 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 
Yandex Toolbar이(가) Internet Explorer에서 실행 중임Yandex Toolbar이(가) Internet Explorer에서 실행 중임
Yandex Toolbar 추가 기능은 Internet Explorer에서 문제를 일으킬 수 있음 확인됨 

posted by Town One townone

댓글을 달아 주세요

2013.05.31 16:10 윈도우/참고
이 문서에서는 중단, 충돌 및 속도 느려짐과 같은 IE 문제가 발생할 때 문제 해결 도구를 사용하여 IE 문제를 자동으로 해결하는 방법을 설명합니다.
IE가 최근에 제대로 작동되지 않습니다. 시작하는 데 시간이 오래 걸리고 중단되기도 합니다. 어떻게 해야 하나요?  
  이것은 "추가 기능"으로 인한 것일 수 있습니다.
추가 기능이란 무엇입니까?  
  추가 기능은 IE에 추가적인 기능을 제공하는 프로그램입니다. IE에 검색 기능을 추가하는 도구 모음이 바로 추가 기능의 한 예입니다.

여러 많은 회사나 조직에서 자체적인 추가 기능을 제공하고 있습니다. 추가 기능은 응용 프로그램 소프트웨어와 함께 설치할 수 있으며 웹 사이트에서 간단히 몇 가지 작업만 수행하여 설치할 수도 있습니다. 따라서 사용자들이 설치 여부를 알지 못할 수 있습니다.
추가 기능 때문에 IE가 작동 중단되거나 느려질수 있다는 뜻인가요?  
  일반적으로 추가 기능이 문제를 유발하지는 않지만 둘 이상의 추가 기능이 서로에게 영향을 미칠 경우 속도 느려짐이나 중단과 같은 성능 문제가 나타날 수 있습니다.

첫 번째로 해야 할 작업은 "추가 기능 없음" 모드에서 IE를 실행하여 문제를 유발하는 추가 기능이 있는지 확인하는 것입니다.

시작을 클릭하고 프로그램 및 파일 검색 상자에 Internet Explorer를 입력한 후 검색 결과가 표시되면 Internet Explorer(추가 기능 없음)를 클릭합니다.
우와! 추가 기능 없음 모드를 사용하니까 IE가 문제 없이 실행되네요.  
  아무래도 문제가 추가 기능 때문인 것 같습니다. 이 문제를 해결할 방법이 있습니다. 한 번 해보도록 할까요?

Microsoft 문제 해결 단추를 클릭하고 화면 지시를 따릅니다. 문제 해결 작업이 자동으로 적용됩니다.
문제 자동 해결
Microsoft 자동 문제 해결 서비스: Internet Explorer 중단 또는 충돌
"Internet Explorer 중단 또는 충돌" 페이지가 표시됩니다.
그림 축소그림 확대
Microsoft 자동 문제 해결 서비스: Internet Explorer 중단 또는 충돌
 
  지금 실행을 클릭하고 화면의 지시를 따릅니다. 작업 단계는 Window Vista 및 Windows 7에서 동일합니다.

Windows 7에서 IE가 느려지거나 중단되는 문제를 Microsoft Fix it에서 사용하는 방법에 대해 확인해 보십시오.

Windows Vista에서 IE가 느려지거나 중단되는 문제를 Microsoft Fix it에서 사용하는 방법에 대해 확인해 보십시오.
이 방법으로 문제가 해결되지 않으면 어떻게 해야 합니까?  
  IE에서 추가 기능 관리 도구를 사용하여 추가 기능을 하나씩 확인해볼 수도 있습니다. 자세한 내용은 다음 사이트를 참조하십시오. "IE가 너무 느리게 실행되거나 중단됨(자동 문제 해결) ".

단계

Windows 7에서 IE가 느려지거나 중단되는 문제를 Microsoft Fix it에서 사용하는 방법
  1. Microsoft 문제 해결 단추를 클릭합니다.
    문제 자동 해결
    Microsoft 자동 문제 해결 서비스: Internet Explorer 중단 또는 충돌
  2. "Internet Explorer 중단 또는 충돌" 페이지가 표시됩니다. 지금 실행을 클릭합니다.
    그림 축소그림 확대
    파일 다운로드
  3. 보안 경고 대화 상자가 표시되면 실행을 클릭합니다.
    그림 축소그림 확대
    Microsoft 자동 문제 해결 서비스 시작
  4. 프로그램의 설치 상태가 표시됩니다. 프로세스가 완료될 때까지 기다립니다.
    그림 축소그림 확대
    Internet Explorer 추가 기능
  5. 화면의 지시를 따릅니다.
대화로 돌아가기

Windows Vista에서 IE가 느려지거나 중단되는 문제를 Microsoft Fix it에서 사용하는 방법
  1. Microsoft 문제 해결 단추를 클릭합니다.
    문제 자동 해결
    Microsoft 자동 문제 해결 서비스: Internet Explorer 중단 또는 충돌
  2. "Internet Explorer 중단 또는 충돌" 페이지가 표시되면 지금 실행을 클릭합니다.
    그림 축소그림 확대
    Microsoft 자동 문제 해결 서비스: Internet Explorer 중단 또는 충돌
  3. "웹 사이트에서 'Microsoft Corporation'의 'DiagWAPI.dll' 추가 기능을 실행하려고 합니다. …" 메시지를 클릭하고 추가 기능 실행을 클릭하여 문제 해결을 위해 해당 추가 기능 프로그램을 설치합니다. 추가 기능이 이미 설치되어 있으면 이 메시지가 표시되지 않습니다.
    그림 축소그림 확대
    추가 기능 실행
  4. 보안 경고 대화 상자가 표시되면 실행을 클릭합니다.
    그림 축소그림 확대
    이 Active X 컨트롤을 실행하시겠습니까?


    참고: "계속하려면 사용 권한이 필요합니다." 메시지가 표시되면 계속을 클릭합니다.
  5. 화면의 지시를 따릅니다.
posted by Town One townone

댓글을 달아 주세요

2013.05.27 18:28 Windows8/Windows Store App
http://msdn.microsoft.com/ko-kr/library/windows/apps/hh986967.aspx

 

posted by Town One townone

댓글을 달아 주세요

  1. 1 2017.11.15 18:44  Addr  Edit/Del  Reply

    Windows App Certification Kit 업데이트

    https://developer.microsoft.com/en-us/windows/develop/app-certification-kit

2013.05.27 15:51 Windows8/C#

http://kaki104.tistory.com/entry/KMusic-Player-Help

'Windows8 > C#' 카테고리의 다른 글

KMusic Player  (0) 2013.05.27
Sorting Arrays [C#]  (0) 2013.03.15
posted by Town One townone

댓글을 달아 주세요

2013.05.27 10:56 Windows8/Windows Store App
http://msdn.microsoft.com/ko-kr/library/vstudio/system.windows.controls.mediaelement(v=vs.90).aspx
posted by Town One townone

댓글을 달아 주세요

2013.05.27 10:34 Windows8/Windows Store App

현재 뮤직 플레이어를 만들고 있는데 한가지 문제점이 생겼다.

 

노래를 재생 하기 위해서는 MediaElement 인스턴스가 필요하다.

일단 MediaElement 에 노래 Urifile 을 넣어주고 Play() 메서드만 호출해 주면 재생하는건 아무 문제가 없다.

 

근데 문제는??

 

Element 가 모든 페이지 에서 공유가 되어야 한다는 것이다. 참고로 디자인 패턴에선 이걸 (싱글턴 패턴) singleton pattern 이라고 한다.

 

예를 하나 들어보자.

 

MainPage , MusicPlayingPage, 그리고 App bar 가 하나 있다고 치자.

 

MainPage 에는 MusicPlayingPage 로 이동하는 버튼이 있고 MusicPlayingPage 로 이동하면 노래가 자동으로 재생이 된다. 즉 MediaElement 를 사용하게 된다.

 

하지만 App bar 에서도 노래를 재생하거나 멈출 수 있다. 현재 재생되고 있는 노래를 멈추려면 아까 MusicPlayingPage 에서 재생된 그 MediaElement 에 접근이 가능해야 한다.

 

하지만 MusicPlayingPageApp bar 는 서로 다른 영역이다. 이렇게 서로 다른 두 영역에서 한가지 resource 를 사용할 수 있는 방법은 무엇이 있을까?!

 

일단 두가지 방법을 알아 내었다.

 

 

1. MediaElement 를 static 변수로 사용한다.

 

누구나 생각해 볼 수 있는 방법이다.. Windows store App 은 보통 처음 시작되면 App.xaml.csOnLaunched 가 호출되게 된다.

App 이 시작될 때 처음 호출되는 부분이므로 이곳에다 static 변수를 선언해 놓으면 App 이 종료될 때 까지는 계속 사용할 수가 있다.

 

나는 다음과 같이 만들어 보았다.

 

[App.caml.cs]

 

    public sealed partial class MainPage : Page
    {
        public static MediaPlayer player = null;
        public MainPage()
        {
            this.InitializeComponent();
            player = new MediaPlayer();
        }

        /// <summary>
        /// Invoked when this page is about to be displayed in a Frame.
        /// </summary>
        /// <param name="e">Event data that describes how this page was reached.  The Parameter
        /// property is typically used to configure the page.</param>
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            RootFrame.Navigate(typeof(RootPage), "");
        }
    }

 

[MediaPlayer.cs]

 

namespace MediaTest
{
    public class MediaPlayer
    {
        private MediaElement _media = null;
        public MediaElement Media
        {
            get;
            set;
        }

        public MediaPlayer()
        {
            Media = new MediaElement();
            Media.AudioCategory = Windows.UI.Xaml.Media.AudioCategory.BackgroundCapableMedia;
            //Media.AutoPlay = true;
        }

        public void Play()
        {
            Media.Play();
        }

        public void Stop()
        {
            Media.Stop();
        }

        public async void setMedia(StorageFile file)
        {
            var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
            Media.SetSource(stream, file.ContentType);
        }
    }
}

 

아까 말한대로 App.xaml.csMediaPlayer 라는 클래스의 인스턴스를 static 으로 생성해 줬다. MediaPlayer 는 그냥 예제용으로 만든 클래스 이다. MediaPlayer 클래스에는 실제로 MediaElement 가 위치해 있는 것이다.

 

그럼 이 MediaElement 를 사용해 보도록 하자.

 

[MusicPlayingPage.xaml.cs]

 

        private async void Button_Click_1(object sender, RoutedEventArgs e)
        {
            StorageFolder storageFolder = KnownFolders.DocumentsLibrary;
            StorageFile file = await storageFolder.CreateFileAsync("Music.mp3", CreationCollisionOption.OpenIfExists);
            MainPage.player.setMedia(file);
            MainPage.player.Play();
 
         }

 

MusicPlayingPage 에서는 간단히 버튼이 눌리면 음악 파일을 읽어와 stream 방식으로 재생해주고 있다.

노란색으로 하이라이트 된 부분을 보면 아까 static 으로 선언했던 player 변수를 사용하고 있다.

static 으로 선언이 되었기 때문에 어느 Page 에서든 접근이 가능하다.

 

App bar 에서 사용할 때도 저렇게 사용해 주면 된다.

 

근데 이렇게 하는건 뭔가 찜찜하다.. 잘못된 방법은 아니지만 뭔가 찜찜하다.. 그래서 MSDN을 찾아보니 아래와 같은 방법이 제시되어 있었다.

 

 

2. App.xaml 에 변수를 선언

 

기가막힌 방법이다. App.xaml 는 이미 static 하게 사용하도록 만들어져 있기 때문에 이곳에 선언을 해 두면 어디서든 사용이 가능하다.

 

 

<Application
    x:Class="MediaTest.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:MediaTest">


    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>

                <!--
                    Styles that define common aspects of the platform look and feel
                    Required by Visual Studio project and item templates
                 -->

                <ResourceDictionary Source="Common/StandardStyles.xaml"/>
            </ResourceDictionary.MergedDictionaries>
            <MediaElement x:Name="localMediaElement"/>
        </ResourceDictionary>
    </Application.Resources>
</Application>

 

노란색 하이라이트를 보면 MediaElement를 다른 resource 들과 동일하게 선언해 놓은 것을 볼 수 있다.

이렇게 하면 소스코드와 마찬가지로 App.xaml 페이지가 호출 될 때 MediaElement 인스턴스가 생성이 된다. 사실 정확한건 아니다. 이건 내 직감일 뿐이다...

 

이제 선언을 했으니 저걸 불러다 사용해 보자.

 

 

        private async void Button_Click_1(object sender, RoutedEventArgs e)
        {
            StorageFolder storageFolder = KnownFolders.DocumentsLibrary;
            StorageFile file = await storageFolder.CreateFileAsync("01 봄바람.mp3", CreationCollisionOption.OpenIfExists);
 
            MediaElement media = (MediaElement)App.Current.Resources["localMediaElement"];
            var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
            media.SetSource(stream, file.ContentType);
            media.Play();
        }

 

노란색 하이라이트만 보자. 아까 등록한 resource 를 불러다쓰려면 저렇게 하면 된다. 다시 말하지만 현재 저 resourcestatic 하게 인스턴스 화 되어 있는 상태이다. 때문에 다른 페이지에서 저렇게 가져온다고 해서 새로 인스턴스가 생성되거나 하지 않는다. 레퍼런스만 가져오는 것이다.

 

근데 보면 저거 꼭 "App.xaml 에 선언해줘야 되는건가?" 라는 궁금증이 든다.

 

그래서 static resource 파일인 CommonStandardStyles.xaml 에도 선언을 해 줘봤다.

 

잘된다!

 

그럼 다시.

 

우리는 보통 StandardStyles 에다 필요한 선언을 하지 않는다. Microsoft 에서 Common 폴더 내에 있는건 왠만하면 건들지 말라고 권장하고 있기 때문이다. 그래서 보통 ResourceDictonary를 새로 하나 생성해서 사용하곤 한다.

 

그럼 새로 생성한 ResourceDictonary 에 변수를 선언해 줘도 static 하게 동작할까?

 

잘된다!!

 

하지만 새로 생성한 ResourceDictonaryApp.xaml 에서 StandardStyle.xamlmerge 해줘야 한다는 점.

 

[App.xaml]

 

<Application
    x:Class="MediaTest.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:MediaTest">


    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>

                <!--
                    Styles that define common aspects of the platform look and feel
                    Required by Visual Studio project and item templates
                 -->

                <ResourceDictionary Source="Common/StandardStyles.xaml"/>
                <ResourceDictionary Source="CustomStyle.xaml"/>
            </ResourceDictionary.MergedDictionaries>
            <!--<MediaElement x:Name="localMediaElement"/>-->
        </ResourceDictionary>
    </Application.Resources>
</Application>

 

이 두가지 방법을 쓰면 싱글턴 패턴을 쓰는데 무리가 없을 것 같다.

 

좀 더 전문적인 글을 보기 위해선 아래 링크를 참고하자.

 

http://msdn.microsoft.com/en-us/library/ff650316.aspx

posted by Town One townone

댓글을 달아 주세요

2013.05.24 18:22 Windows8/Windows Store App
http://cafe.naver.com/mobilenjoy/13601

 

posted by Town One townone

댓글을 달아 주세요