안드로이드 앱개발 스터디8 - 03 (MP3 Player)

2021. 8. 25. 05:14Android Studio/안드로이드 스튜디오(JAVA)

반응형

https://www.youtube.com/watch?v=-jTbUeTSAYU&list=PLC51MBz7PMyyyR2l4gGBMFMMUfYmBkZxm&index=23 

안드로이드 앱 개발 강의

#22 음악 재생기 (MP3 Player)

 말 그대로 음악 재생기이다. 원래는 "재생" 버튼이랑 "정지" 버튼 두 개만 있어서 "재생" 버튼을 누르면 노래가 재생되고, "정지" 버튼을 누르면 재생이 중단되는 것이다. 영상에서처럼만 만들면 심심할 것 같아서 노래도 6곡으로 하고 기능을 좀 더 추가해보았는데 그건 다음 글(MP3 Player 응용)에서 이야기 하겠다.

 

1. 음원 파일

 res에 Android Resource Directory 폴더(raw 폴더)를 하나 만들어 준다. 그리고 MP3 파일을 만들어 준 폴더에 복사 붙여넣기 하면 된다. 이때, 파일 이름에 대문자가 들어가면 안 된다.

 

2. 화면 구성하기 (main_activity.xml)

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
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="horizontal">
 
    <Button
        android:id="@+id/btn_start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="start"
        android:layout_marginHorizontal="5dp"/>
 
    <Button
        android:id="@+id/btn_stop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="stop"
        android:layout_marginRight="5dp"/>
 
</LinearLayout>
cs

 재생, 정지 버튼 두 개만 만들어 주면 된다.

 

3. MainActivity.java

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
32
33
34
35
36
public class MainActivity extends AppCompatActivity {
 
    Button btn_stop;
    Button btn_start;
 
    MediaPlayer mediaPlayer;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        btn_stop = (Button)findViewById(R.id.btn_stop);
        btn_start = (Button)findViewById(R.id.btn_start);
 
        //시작 버튼 눌렀을 때
        btn_start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.mymusic); //raw 폴더에 넣어 놓은 mymusic이라는 음원
               mediaPlayer.start(); //음원 재생
            }
        });
 
        //정지버튼 눌렀을 때
        btn_stop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(mediaPlayer.isPlaying()){ //막 종료 시키면 앱 자체가 종료될 수도 있어서 음원이 재생되고 있을 때만 음원 종료가 실행되게.
                   mediaPlayer.stop(); //mediaPlayer 종료
                   mediaPlayer.reset(); //mediaPlayer 초기화
                }
            }
        });
    }
}
cs

 재생 버튼과 정지 버튼을 선언해준다.

1
2
3
4
5
6
7
8
9
    //액티비티가 종료될 때 이곳 실행
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if(mediaPlayer != null){
            mediaPlayer.release();
            mediaPlayer = null;
        }
    }
cs

 액티비티가 종료될 때 실행되는 부분이다. mediaPlayer를 정확하게 초기화 해주는 것이다.

 

4. 실행

 가상기기에서는 작동하지 않고 실제 휴대폰에서만 작동되는데 휴대폰 화면 녹화가 안 돼서 패스. 그냥 제일 처음에 설명한대로 START 버튼을 누르면 음원이 재생되고, STOP 버튼을 누르면 음원 재생이 중단된다.

반응형