개요
이 튜토리얼에서는 안드로이드 앱에서 assets 폴더에 저장된 오디오 파일을 MediaPlayer를 이용해 재생하는 방법을 단계별로 살펴봅니다. 예제는 버튼 하나를 누르면 assets 폴더의 MP3 파일이 재생되는 간단한 구조입니다.
1단계: 새 프로젝트 생성
Android Studio를 실행한 뒤 File → New Project 메뉴로 이동하고, 새 프로젝트 생성에 필요한 정보를 모두 입력해 프로젝트를 만듭니다.
2단계: 레이아웃 작성 (res/layout/activity_main.xml)
화면 중앙에 오디오 재생 버튼 하나를 배치하는 간단한 레이아웃입니다. res/layout/activity_main.xml 파일에 아래 코드를 추가하세요.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/btnPlayAudio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" Play audio"
android:textStyle="italic"
android:layout_centerInParent="true" />
</RelativeLayout>3단계: assets 폴더 생성 및 오디오 파일 추가
프로젝트를 마우스 오른쪽 버튼으로 클릭한 후 New → Folder → Assets Folder를 선택해 assets 폴더를 생성합니다. 그다음 재생할 오디오 파일(예: audio.mp3)을 복사해서 해당 폴더에 붙여넣습니다.
4단계: MainActivity.java 코드 작성
src/MainActivity.java에 아래 코드를 추가합니다. 버튼을 클릭하면 MediaPlayer가 assets 폴더의 오디오 파일을 열어 재생하도록 구현한 코드입니다.
import android.content.res.AssetFileDescriptor;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.btnPlayAudio);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MediaPlayer mediaPlayer = new MediaPlayer();
AssetFileDescriptor afd;
try {
afd = getAssets().openFd("audio.mp3");
mediaPlayer.setDataSource(afd.getFileDescriptor());
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
Toast.makeText(MainActivity.this, "Playing
audio from Asset directory",
Toast.LENGTH_SHORT).show();
}
});
}
}코드 핵심 흐름:
getAssets().openFd("audio.mp3")— assets 폴더의 오디오 파일을 파일 디스크립터로 엽니다.setDataSource()— MediaPlayer에 재생할 데이터 소스를 지정합니다.prepare()— 재생 전에 미디어 플레이어를 준비 상태로 만듭니다.start()— 실제 오디오 재생을 시작합니다.
5단계: AndroidManifest.xml 설정
androidManifest.xml 파일에 아래와 같이 액티비티를 등록합니다.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>앱 실행 및 결과 확인
이제 애플리케이션을 실행해 보겠습니다. 실제 안드로이드 기기가 컴퓨터에 연결되어 있다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤 툴바의 Run 아이콘을 클릭하세요. 실행 옵션 목록에서 자신의 모바일 기기를 선택하면, 기기 화면에 아래와 같은 기본 화면이 나타납니다.

버튼을 누르면 assets 폴더에 저장된 오디오 파일이 재생되고, "Playing audio from Asset directory"라는 토스트 메시지가 잠시 표시됩니다.