코틀린 안드로이드 앱개발 강좌, MP3 재생 앱 만들기

안녕하세요! 오늘은 코틀린을 이용하여 안드로이드에서 MP3 파일을 재생할 수 있는 간단한 앱을 만드는 방법을 알아보겠습니다. 이 강좌에서는 Kotlin의 기본 개념을 바탕으로 시스템의 다양한 기능을 활용하는 방법을 익히게 될 것입니다. 이 앱은 기본적인 사용자 인터페이스(UI)를 제공하며, MP3 파일을 로드하고 재생, 일시정지, 멈추기 기능을 갖추게 됩니다.

1. 프로젝트 설정

안드로이드 스튜디오를 열고 새 프로젝트를 생성합니다. 아래의 단계를 따르십시오:

  1. 안드로이드 스튜디오에서 “New Project”를 클릭합니다.
  2. “Empty Activity”를 선택한 후 “Next”를 클릭합니다.
  3. 프로젝트 이름을 입력하고 패키지 이름, 저장 위치를 설정합니다.
  4. 언어로 “Kotlin”을 선택하고 “Finish”를 클릭하여 프로젝트를 생성합니다.

2. 의존성 추가

MP3 파일을 재생하기 위해 Android의 MediaPlayer 클래스를 사용할 것입니다. 의존성 라이브러리는 필요하지 않지만, 추가적으로 UI를 더 아름답게 만들기 위해 아래와 같은 라이브러리를 추가할 수 있습니다.

implementation "com.google.android.material:material:1.3.0"

3. 사용자 인터페이스(UI) 설계

이제 사용자 인터페이스를 구성해보겠습니다. activity_main.xml 파일을 열어 아래 코드를 추가합니다:

<RelativeLayout 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">

    <Button
        android:id="@+id/btnPlay"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Play"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"/>

    <Button
        android:id="@+id/btnPause"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Pause"
        android:layout_below="@id/btnPlay"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"/>

    <Button
        android:id="@+id/btnStop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Stop"
        android:layout_below="@id/btnPause"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"/>

    </RelativeLayout>

4. MainActivity 구성

이제 MainActivity.kt 파일을 열어 MP3 파일을 재생하기 위한 로직을 추가합니다. 우선, MediaPlayer 객체를 선언하고 버튼 클릭 이벤트를 처리하도록 코드를 작성하겠습니다:

import android.media.MediaPlayer
    import android.os.Bundle
    import android.widget.Button
    import androidx.appcompat.app.AppCompatActivity

    class MainActivity : AppCompatActivity() {

        private lateinit var mediaPlayer: MediaPlayer
        private lateinit var btnPlay: Button
        private lateinit var btnPause: Button
        private lateinit var btnStop: Button

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)

            btnPlay = findViewById(R.id.btnPlay)
            btnPause = findViewById(R.id.btnPause)
            btnStop = findViewById(R.id.btnStop)

            mediaPlayer = MediaPlayer.create(this, R.raw.sample) // sample.mp3 파일을 res/raw 폴더에 추가해야 합니다.

            btnPlay.setOnClickListener {
                if (!mediaPlayer.isPlaying) {
                    mediaPlayer.start()
                }
            }

            btnPause.setOnClickListener {
                if (mediaPlayer.isPlaying) {
                    mediaPlayer.pause()
                }
            }

            btnStop.setOnClickListener {
                if (mediaPlayer.isPlaying) {
                    mediaPlayer.stop()
                    mediaPlayer.prepare() // 재생을 위해 미디어를 준비합니다.
                }
            }
        }

        override fun onDestroy() {
            super.onDestroy()
            mediaPlayer.release() // 활동 종료 시 리소스 해제
        }
    }

5. MP3 파일 추가

위 코드에서 사용한 MP3 파일은 res/raw 폴더에 위치해야 합니다. 프로젝트의 res 폴더 내에 raw 폴더를 생성한 후, 재생할 MP3 파일(예: sample.mp3)을 추가하세요. 이를 통해 MediaPlayer가 파일을 재생할 수 있게 됩니다.

6. 앱 실행하기

모든 설정이 완료되었으니, 이제 앱을 실행해 보겠습니다. 안드로이드 스튜디오 상단의 실행 버튼을 클릭하여 에뮬레이터나 실제 디바이스에서 앱을 실행하십시오.

7. 사용자 경험 향상

기본적인 MP3 재생 기능이 완성되었습니다. 그러나 앱의 사용성을 향상시키기 위해 추가적인 기능을 구현할 수 있습니다. 예를 들어:

  • 재생 위치를 표시하는 SeekBar 추가
  • 재생 목록 기능 추가
  • 재생 완료 시 알림 표시
  • 일시 정지/재개 시 버튼 상태 변경

이러한 기능들은 Android의 다양한 컴포넌트를 활용하여 손쉽게 구현할 수 있습니다. 한 단계 더 나아가고 싶다면, Jetpack 라이브러리와 MVVM 아키텍처를 참고하여 코드 구조를 개선해 보세요.

8. 마무리하며

이번 강좌에서는 코틀린을 사용하여 안드로이드에서 MP3 재생 기능을 갖춘 간단한 앱을 만들었습니다. 이 과정을 통해 매력적인 모바일 앱 개발의 첫걸음을 내딛게 되었기를 바랍니다. 더 나아가, 다양한 기능을 추가하거나 블루투스 장치와 연동하여 음악을 재생하는 등의 도전을 계속해 보세요!

감사합니다!