참고 : http://developer.android.com/reference/android/media/MediaPlayer.html TF에서 MediaPlayer를 Override할 일이 생겨 테스트하는데 Play/Stop을 하면 연신 IllegalStateException를 일으킨다. MediaPlayer문서를 보니 답이 있다. 잊기전에 주요한 내용들 정리해보자. 아래 State Diagram는 MediaPlayer가 사용자 액션을 받아 취해지는 상태(State)를 의미 객체가 생성되면 Idle상태에서 사용자 이벤트(메소드호출)에 따라 상태가 변함, (편의를 위해 만든 create는 Initialized상태로 됨.) 촉이 한개인 화살표는 Sync, 쌍촉? 화살표는 Async로 이벤트가 처리되는 것을 의미 [중요] 상태(State)흐름이 Stopped가 되면 그 상태에서 Paused, Started, PlaybackCompleted로 이동하지 못한다. 즉, stop()메소드가 불러지면 start(), seekTo(), pause() 메소드를 다시 부를 수 없다는 의미이다. 내가 혼돈했던것이 이부분이다. 보통 Start/Stop을 할 수 있다고 생각하지 않나? 그건 내생각이고 그 원하는 바로 되려면 Start/Pause이다. Stop된 객체를 다시 Start하고 싶으면 Prepare()해야한다. 이렇게 State이동을 잘못하면 IllegalStateException이 발생한다. MediaPlayer를 이용한 작업을 마치면 반드시 release()를 해서 리소스 반환 MediaPlayer 객체를 생성하는 방법 create()와 new, create()를 사용하면 바로 Initialized상태로 진입, new를 사용하면 Idle상태로 진입. 당연한것이 create()를 할때 datasource를 넣어 객체를 한다.
Daum Dev Day 에 다녀왔습니다. 몇일 지났는데 후기 몇자 적어봅니다. 모두들 그 짧은 시간에 어찌나 잘들 만드시던지, 대단하십니다.~ 결과물 : http://dna.daum.net/apis/devday08 우리(나와 성권이 )는 Daum 도서 검색API를 이용해 Apple iPod Touch어플리케이션을 만들기로 했습니다. 뭐 원래 계획은 디앤샵 상품검색을 하려했는데... 왜 못했죠?ㅋㅋ 프로그램이 만들어지려면 시나리오 잡고, 구현설계하고, 개발진행하는게 맞겠지만, 우린 Objective-c라는 언어의 문법부터 봐야했죠. @.@ 행사 전날에 학교에 모여 삽질을 시작했습니다. "이건 뭐에 쓰는 신택스냐?ㅋㅋ" "몰라요~" 뭐 그렇게 시간은 가고, 잠은 오고, 전날 먹은 술에 몸은 힘들고ㅋㅋ 다음날, 오랜만에 라꾸라꾸에서 잤더니, 온몸이 뻐근하더군요. 나가서 아침먹고, 사우나가서 샤워하고, 양재로 고고싱~ 그렇게 행사는 시작되고~ 우우우~ iPhone SDK beta 2(Interface builder가 포함된 버전)가 행사 전날 배포되 Interface builder를 제대로 사용해 보지 못한게 아쉬웠습니다. http://developer.apple.com/iphone/ 에 있는 샘플코드들 가져다 수정하는 걸로 만족해야했죠. :) 참고했던 자료들은 여기에 모아둡니다. http://kwangsub.springnote.com/pages/999696 보이는데로 추가할 생각입니다. 시간되면? iDaumShop도 마무리해보고요. XCode, 사용법만 익히면 참 펼리할것 같단 생각이 행사내 들더군요. 앞으로 Daum Dev Day를 분기별로 진행한다고 합니다. 관심있으신 분들, http://dna.daum.net 에 종종 들러 보아요. 상길님이 발로 찍어주신 사진ㅋㅋ @상길님/발로 찍으신거 치곤 잘나왔네요.
제가 알기로는 MS의 파워포인트에서도 제공하고 있는 기능입니다. ^^;
답글삭제더 나아가서 간단한 요약 코멘트도 적어 둘 수 있죠..
사실 연단에서 발표하는 대다수의 강연자들은 발표자용 화면을 참고해서 진행하는 것으로 알고 있습니다.
@래퍼백곰 - 2008/01/20 23:20
답글삭제그렇군요, 몰랐네요. ^^
긴장되는 발표일수록 더욱 그렇죠. .. :-)