일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 영어
- MapView
- 안드로이드 개발
- 구글 안드로이드
- 안드로이드 2.0 개발
- 하루 한마디 영어
- 안드로이드 개발 2.0 강좌
- 안드로이드
- SKY 시리우스
- 안드로이드 개발 강좌
- 인기있는 블로그 만들기
- sky 시리우스폰
- 안드로이드2.0
- 스마트폰 배경화면
- 스카이 안드로이드폰 시리우스 K양 동영상
- 아이폰 배경화면
- android
- 스카이 안드로이드폰 시리우스
- 아이폰 바탕화면
- 구글 안드로이드 개발
- Form Stuff
- 하루한마디영어
- 안드로이드 바탕화면
- objective-c
- 안드로이드폰
- 안드로이드개발
- 안드로이드2.0개발
- 안드로이드 개발 2.0
- 구글안드로이드
- 안드로이드 배경화면
- Today
- Total
moozi
MP3 플레이어 만들기 2 - MP3 플레이어의 시작 본문
이번 강좌는 지난 강좌 [ 안드로이드 개발 2.0 ] MP3 플레이어 만들기 1 - AVD에서 MP3 듣기 에서 이어집니다.
지난 강좌에서는 SD Card가 장착된 AVD에 MP3를 넣고 AVD 자체의 Music Player를 이용해서 mp3를 play해 보았는데 이번에는 mp3를 play하고 stop하는 간단한 예제를 작성해 보겠습니다.
1. 다음과 같이 프로젝트를 생성합니다.
( 정확하진 않지만 Android SDK Tools, revision 5를 업데이트 한 후부터 Min SDK Version이 자동으로 입력되지 않는것 같습니다. 수동으로 입력해 주었습니다. )
2. res -> layout -> main.xml 에 다음과 같이 편집합니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ProgressBar android:id="@+id/ProgressBar01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></ProgressBar>
<LinearLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button android:id="@+id/playButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Play"/>
<Button android:id="@+id/stopButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stop"/>
</LinearLayout>
</LinearLayout>
코드에서 ProgressBar는 mp3가 play되는 동안 잠시 나타났다가 stop하면 사라집니다. mp3가 play되는 상황을 표시하기 위해 사용되었습니다.
3. src -> my.MyMusic -> MyMusic.java 를 다음과 같이 편집합니다.
package my.MyMusic;
import java.io.IOException;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.Toast;
public class MyMusic extends Activity {
private static MediaPlayer audio_play;
private Button startButton;
private Button stopButton;
private ProgressBar progressbar;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startButton = (Button) findViewById(R.id.playButton);
stopButton = (Button) findViewById(R.id.stopButton);
progressbar = (ProgressBar) findViewById(R.id.ProgressBar01);
progressbar.setVisibility(8); //GONE
startButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
progressbar.setVisibility(0); //VISIBLE
play();
}
});
stopButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
progressbar.setVisibility(8); //GONE
stop();
}
});
}
@Override
protected void onPause() {
super.onPause();
progressbar.setVisibility(8); //GONE
stop();
}
public void play( ) {
stop();
audio_play = new MediaPlayer();
try{
audio_play.setDataSource("/sdcard/mymusic.mp3"); // mp3파일 경로
audio_play.prepare(); // 준비
audio_play.setLooping(false); // 반복재생 false
audio_play.start(); // 시작
}catch(IOException e){
Toast.makeText(MyMusic.this, "Error!!",
Toast.LENGTH_SHORT).show();
}
}
public void stop() {
if (audio_play != null) {
audio_play.stop(); // 중지
audio_play.release(); // 자원 반환
audio_play = null;
}
}
}
코드에서 progressbar.setVisibility(8); 는 ProgressBar를 화면에서 사라지게 합니다. 8은 GONE에 해당하는 값인데 GONE은 progressbar가 자신의 영역을 차지하지 않고 완전히 사라지게 합니다. 비슷한 것으로 INVISIBLE이 있는데 INVISIBLE은 뷰가 사라지더라도 원래 차지하고 있던 영역은 그대로 유지됩니다.
progressbar.setVisibility(0); 은 ProgressBar를 나타나게 합니다.
audio_play = new MediaPlayer(); 에서 MediaPlayer 클래스를 사용하는 것을 볼 수 있는데, MediaPlayer클래스 내부에는 mp3와 같은 audio 파일을 시작, 중지, 검색 등의 역할을 하는 많은 메서드들이 존재합니다.
audio_play.setDataSource("/sdcard/mymusic.mp3"); 에서 지난 강좌에 사용했던 mymusic.mp3의 경로를 지정했습니다.
audio_play.setLooping(false); 는 mp3 를 play할 때 반복재생하는 것을 false로 지정합니다.
audio_play.start(); 는 mp3를 play합니다.
audio_play.stop(); 는 mp3 재생을 중지합니다.
audio_play.release(); MediaPlay Object에 관련한 자원을 반환합니다.
4. Ctrl + F11 로 실행합니다.
[ 처음 또는 stop 한 상태 ]
[ play 한 상태 ]
play 버튼을 누르면 progress bar가 나타나고 재생이 되며, stop버튼을 누르면 progress bar가 사라지고 재생이 종료됩니다.
'안드로이드개발강좌' 카테고리의 다른 글
Hex To RGB, RGB To Hex, 색상표 (2) | 2012.08.20 |
---|---|
MP3 플레이어 만들기 3 - MP3 목록가져오기 (12) | 2010.04.09 |
MP3 플레이어 만들기 1 - AVD에서 MP3 듣기 (8) | 2010.03.25 |
그래픽 2D 6 - ACTION_DOWN 사용하기 (4) | 2010.03.16 |
Android SDK Tools, revision 5 로 업그레이드 하기 (6) | 2010.03.13 |