목차
- 안드로이드 스튜디오 앱 프로젝트 생성 예제 이전 포스팅 참고 학습
- 안드로이드 Butotn OnClick 이벤트 처리 예제 이전 포스팅 참고 학습
- 안드로이드 TextView 출력 예제 이전 포스팅 참고 학습
- 안드로이드 레이아웃 XML에 재생, 일시정지, 정지 버튼 추가하기 예제
- 안드로이드 mp3 재생, 일시정지, 정지하기 예제
안드로이드 스튜디오 앱 프로젝트 생성 예제 이전 포스팅 참고 학습
오늘 다룰 포스팅 주제는 안드로이드 앱에서 mp3 파일의 음악을 재생하고 일시중지하고 중지시키는 예제입니다. 우리는 출퇴근 동안 많은 음악을 듣습니다. 보통 멜론과 같은 뮤직 플레이어 앱을 사용하지만 우리가 직접 플레이어 앱을 만들 수도 있습니다. 이를 위해서는 안드로이드의 MediaPlayer에 대해 알아야합니다.
또한 오늘 예제를 구성하고 실행해보기 위해서는 신규 앱 프로젝트 생성 방법을 알아야합니다. 아직 안드로이드 스튜디오로 신규 앱 프로젝트 생성 방법에 대해 잘 모르신다면 아래 링크를 참고하여 학습해주세요.
2023.08.22 - [Android] - [안드로이드] 프로젝트 생성 예제(로그출력, TextView)
안드로이드 Butotn OnClick 이벤트 처리 예제 이전 포스팅 참고 학습
음악을 시작, 일시중지, 중지 시키기 위해서는 이벤트를 전달할 수 있는 버튼이 필요합니다. MainActivity 레이아웃에 버튼 3개를 추가하여 각 버튼을 클릭하였을 때 OnClick 이벤트 처리를하여 음악 실행을 조작해보도록 하겠습니다.
이를 위해 아직 안드로이드 환경에서 버튼 이벤트 처리하는 방법에 대해 잘 모르신다면 아래 링크를 참고하여 학습해주세요.
2020.06.23 - [Android] - 안드로이드 버튼 클릭 이벤트 처리 예제 - 3
안드로이드 TextView 출력 예제 이전 포스팅 참고 학습
마지막으로 현재 음악을 실행중인지 일시중지중인지 정지 상태인지 확인할 수 있도록 TextView를 배치하도록 하겠습니다. 이 TextView에 상태를 출력하도록 하여 사용자가 현재 상태를 확인할 수 있습니다. 만약 아직 안드로이드 환경에서 TextView 구성방법을 잘 모르신다면 아래 링크를 참고하여주세요.
2023.08.22 - [Android] - [안드로이드] TextView 출력 예제(폰트 크기, 색상 변경)
안드로이드 레이아웃 XML에 재생, 일시정지, 정지 버튼 추가하기 예제
아래는 안드로이드 MainActivity 레이아웃에 mp3 파일을 시작, 일시정지, 중지 하기 위한 버튼 3개를 추가한 예제입니다. 또한 제일 상단에는 현재 상태를 확인할 수 있는 TextView를 배치합니다.
<!-- activity_main.xml -->
<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:orientation="vertical"
android:padding="16dp"
tools:context=".MainActivity">
<TextView
android:id="@+id/statusTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text=""
android:textSize="18sp" />
<Button
android:id="@+id/playButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Play" />
<Button
android:id="@+id/pauseButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pause" />
<Button
android:id="@+id/stopButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stop" />
</LinearLayout>
안드로이드 mp3 재생, 일시정지, 정지하기 예제
아래는 Java 코드에서 실제 mp3 음악을 시작, 일시정지, 중지하는 예제입니다. 각 버튼 OnClick 이벤트 리스너 핸들러에 추가합니다. 안드로이드에서 음악 제어는 MusicPlayer를 통해 가능합니다. 그리고 각각 start, pause, stop 등과 같은 하위메소드로 제어가 가능합니다. mp3를 실행해보기 위해서는 리소스 디렉토리에 sample mp3파일을 추가해주세요.
package com.example.blog_test_app;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
static Context context;
private MediaPlayer mediaPlayer;
private TextView statusTv;
private Button playButton, pauseButton, stopButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
statusTv = findViewById(R.id.statusTextView);
playButton = findViewById(R.id.playButton);
pauseButton = findViewById(R.id.pauseButton);
stopButton = findViewById(R.id.stopButton);
playButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer = MediaPlayer.create(context, R.raw.sample_music);
if (!mediaPlayer.isPlaying()) {
mediaPlayer.start();
statusTv.setText("Play");
}
}
});
pauseButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause();
statusTv.setText("Pause");
}
}
});
stopButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer.stop();
mediaPlayer.release();
statusTv.setText("Stop");
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mediaPlayer != null) {
mediaPlayer.release();
}
}
}