개발 창고/Android
[Kotlin] How to use "Ringtone"
로이제로
2023. 12. 5. 22:00
반응형
1. Ringtone 객체 생성
class RingtoneActivity : AppCompatActivity() {
private var ringtone : Ringtone? = null
...
}
Ringtone에 사용될 객체를 선언합니다.
2. Ringtone 실행
/**
* @description 벨소리 시작
* @param context 컨텍스트
* @param packageName 패키지 명 (ex. com.test.app)
* @param path 벨소리 경로 (test.mp3)
*/
fun startRingtone(context:Context, packageName:String, path:String){
// 사전에 선언된 벨소리가 있는 경우 중지
if(ringtone != null) ringtone!!.stop()
val uriString = "android.resource://${packageName}/raw/${path}"
val uriRingtone = Uri.parse(uriString)
ringtone = RingtoneManager.getRingtone(context, uriRingtone)
ringtone!!.play()
}
아래와 같이 resource폴더의 raw폴더에 포함된 ringtone을 호출하게 되는데
현재 앱의 패키지가 com.test.app이고, 재생하려는 ringtone이 fantasy_alarm_clock.mp3인 경우 아래와 같이 호출하면 rintone이 재생됩니다.
startRingtone(this, "com.test.app", "fantasy_alarm_clock.mp3")
3. Ringtone 중지
/**
* @description 벨소리 중지
*/
fun stopRingtone(){
if(ringtone != null){
ringtone!!.stop()
ringtone = null
}
}
사전에 선언된 Ringtone이 있는 경우에만 재생을 중지하고 객체를 비워줍니다.
반응형