반응형
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Collection Framework
- 히오스
- End of Darkness
- 안드로이드
- 소캣(Socket)
- 어플
- game
- 자바
- 컬렉션 프레임
- 스랄 특성
- php 홈디렉토리 변경방법
- 게임
- 비행기 모드
- unity
- 집 정리
- 명령어
- 아이패드
- 에셋
- TCP 네트워크 방식의 연결
- 벨팡
- 리눅스
- 나지보 특성
- 나지보
- tcp네트워크
- 포트(Port)
- 안드로이드 Application Lifecycle
- 아이폰
- 기업의 행포
- 변경된 정보
- tcp
Archives
- Today
- Total
Do Something IT
[안드로이드]Media Player 컨트롤 본문
반응형
안드로이드는 간편한 음원 파일및 비디오 파일 컨트롤을 제공하기위해 MediaPlayer를 제공한다.
MediaPlayer는 자신만의 life cycle을 가지고 있다. 우리는 이를 사용하기 위해서 이를 잘파악하고 사용 해야될 것이다.
※ 앞으로 편하게 설명하기위해 MediaPlayer를 mp라 칭하겠다.
윗 그림이 바로 mp의 life cycle이다. 이는 호출되는 메서드에 따라 mp의 상태가 변화함을 알수있다. 자세히 알아보도록 하자.
private MediaPlayer mp = new MediaPlayer(); // MediaPlayer객체 생성
자 mp가 생성되었다. 최초 생성된 mp의 상태는 idle 상태이다. 이 상태는 유휴 상태로 즉 아무것도 하지않는 상태이다. 그러무로 이상태에서는 아무것도 할수없다. 자 이제 mp에 재생시킬 mp3파일이나 비디오 파일을 set해보자.
mp.setDataSource(Url);
이때 우리는 setDataSource();를 이용한다 파라메터값에 url, uri, file path 등이 들어 갈수 있다. 이 메서들 호출하고 나면 mp의 상태는 Initialized 상태가 된다 즉 파일과 mp의 동기화가 된 상태이다. 동기화가 되었다면 이제 파일을 재생하기 위해mp를 준비 시켜야한다.
mp.prepare();
를 하고나면 mp의 상태는 prepared 가되고 이때 부터 우리는 파일을 재생하거나 멈추거나 할수있게 된다. 재생와 일시정지는
mp.start();
mp.pause();
를 통하여 상태를 전환 할수 있다. 이 두상태에서 stop()을 호출하게 되면 노래의 재생은 stopped 상태가 되며 완전히 종료 되게 된다. stopped 상태에서는 다시 start()를 실행 할수 없다. 이때는 다시 prepare();를 시킨후 start();를 실행 하여야 될것이다. 만약에 재생된 mp가 파일의 끝을 만나 종료 되었을 경우
Cmp.getMp().setOnCompletionListener(
new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
}
});
가 자동으로 호출 된다. 이를 통해 우리는 다음노래를 자동으로 재생하는등 이벤트를 처리 할수 있다.
prepareAsync()의 경우 stopped와 Initialized 에서 호출되는 메소드로 이를 하고나면 preparing 상태가된다 이는 비디오 파일 같은 큰 자원은 prepare 하는데 시간이 걸리므로 prepare(); 보다 prepareAsync();를 사용 하는게 효율적이다. 스트리밍이 끝나고 prepare이 되면 OnpreparedListener.Onprepared()가 호출되어 prepare 상태가되고 mp.start를 이용 하여 재생을 하면된다.
반응형
'Android' 카테고리의 다른 글
[안드로이드] SeekBar로 사운드 조절하기 (2) | 2010.12.20 |
---|---|
[안드로이드] MediaPlayer SeekBar 연동 (1) | 2010.12.20 |
[안드로이드] 키패드 안보이기 (0) | 2010.12.20 |
[안드로이드] Activity 인텐트시 클래스 값 넘기기 (0) | 2010.12.20 |
[안드로이드] 안드로이드 Activity 생명주기의 상세히 알아보기 (0) | 2010.12.20 |
Comments