Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

Android에서 사용자 지정 벨소리·알람음을 재생하는 방법 (코드 예제 포함)

이 튜토리얼에서는 Android 앱에서 사용자 지정 벨소리 또는 알람 사운드를 재생하는 방법을 단계별로 알아봅니다. 프로젝트 생성부터 코드 작성, 실행까지 전체 과정을 예제와 함께 설명합니다.

1단계 — 새 프로젝트 만들기

Android Studio를 실행하고 상단 메뉴에서 File → New Project를 선택한 뒤, 필요한 모든 정보를 입력하여 새 프로젝트를 생성합니다.

2단계 — 레이아웃 파일 작성

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:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:gravity="center"
        android:onClick="playRingtone"
        android:text="Play Ringtone" />

</RelativeLayout>

3단계 — MainActivity에 벨소리 재생 로직 추가

src/MainActivity.java 파일에 다음 코드를 추가합니다. 핵심은 RingtoneManager 클래스입니다. 먼저 raw 폴더에 저장된 오디오 파일의 URI를 만들고, 이를 기본 벨소리로 설정한 후 재생하는 방식으로 동작합니다.

package app.com.sample;

import androidx.appcompat.app.AppCompatActivity;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

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

    public void playRingtone(View view) {
        try {
            Uri path = Uri.parse("android.resource://" + getPackageName() + "/raw/ringtone.mp3");
            RingtoneManager.setActualDefaultRingtoneUri(
                getApplicationContext(), RingtoneManager.TYPE_RINGTONE, path
            );
            Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), path);
            r.play();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

참고: 위 코드가 정상적으로 동작하려면 재생할 오디오 파일(예: ringtone.mp3)을 반드시 프로젝트의 res/raw 폴더 안에 넣어두어야 합니다. raw 폴더가 없다면 새로 생성하면 됩니다.

4단계 — 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 기기를 컴퓨터에 연결했다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤, 툴바의 Run 아이콘을 클릭하세요. 실행 옵션 목록에서 본인의 모바일 기기를 선택하면, 기기 화면에 아래와 같은 기본 화면이 표시됩니다.

Android에서 사용자 지정 벨소리·알람음을 재생하는 방법 (코드 예제 포함)

버튼을 누르면 raw 폴더에 넣어둔 오디오 파일이 벨소리로 설정되며 즉시 재생됩니다. 이 방식을 응용하면 알람음(TYPE_ALARM)이나 알림음(TYPE_NOTIFICATION)도 같은 방법으로 손쉽게 구현할 수 있습니다.