상세 컨텐츠

본문 제목

[안드로이드] 간단하게 노래 재생하는 방법 MediaPlayer

안드로이드

by aries574 2021. 7. 24. 13:53

본문


2021.07.13 - [안드로이드] - [안드로이드] 이미지 리스트 다운로드하는 방법 DownloadManager

 

[안드로이드] 이미지 리스트 다운로드하는 방법 DownloadManager

2021.06.28 - [안드로이드] - [안드로이드]정해진 시간에 알람 울리는 방법 Notification TimePicker [안드로이드]정해진 시간에 알람 울리는 방법 Notification TimePicker 2020.12.25 - [안드로이드] - [안드로..

aries574.tistory.com

2021.07.23 - [안드로이드] - [안드로이드] 버튼 누르면 효과음(SoundPool) 나오게 하는 방법

 

[안드로이드] 버튼 누르면 효과음(SoundPool) 나오게 하는 방법

2021.07.11 - [안드로이드] - [안드로이드] 이미지 리스트로 보여주는 방법 Picasso Recyclerview [안드로이드] 이미지 리스트로 보여주는 방법 Picasso Recyclerview 2021.06.30 - [안드로이드] - [안드로이드]..

aries574.tistory.com

 

이번에는  짧은 효과음이 아닌 긴 노래 재생을 할 때 쓰이는 방법을 알아보겠습니다.

1. 사운드 파일 폴더(raw) 생성

(1) res -> New -> Android Resource Directory

(2) Resource type -> raw

(3) 음악 파일 넣기

생성된 raw폴더에 음악 파일(mp3)을 넣어주시면 됩니다. 

예제는 wav를 넣었습니다.

sound2.wav
0.22MB

 

2. 메인화면(activity_main.xml)

버튼 3개가 있는 간단한 화면입니다.

재생, 정지, 멈춤 3가지의 기능을 가지고 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<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"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">


    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="play"
        android:text="Play" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="pause"
        android:text="Pause" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="stop"
        android:text="Stop" />

</LinearLayout>

 

3. 메인코드(MainActivity.java)

(1) 음악을 재생시키기 위해 쓰이는 MediaPlayer 객체를 생성

(2) start() 함수로 음악 재생

(3) player객체가 생성되었다면 pause() 함수로 정지

(4) player객체가 생성되었다면 release() 함수로 자원 해제

import androidx.appcompat.app.AppCompatActivity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    MediaPlayer player;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    /**
     * 시작하기
     * @param v
     */
    public void play(View v){
        if(player == null){
            player = MediaPlayer.create(this, R.raw.sound2);
        }

        player.start();
    }

    /**
     * 멈춤
     * @param v
     */
    public void pause(View v){

        if(player != null){
            player.pause();
        }
    }

    /**
     * 정지
     * @param v
     */
    public void stop(View v){

        stopPlayer();
    }

    private void stopPlayer(){
        if(player != null){
            player.release();
            player = null;
            Toast.makeText(this, "MediaPlayer released", Toast.LENGTH_SHORT).show();
        }
    }
    
    @Override
    protected void onStop() {
        super.onStop();
        stopPlayer();
    }
}

 

4. 실행화면

 

맘에 드셨다면 공감 부탁드려요

문의 댓글 환영합니다.

 

반응형

관련글 더보기

댓글 영역