사운드 가이드
SoundPlayer로 반려동물 주의를 유도하는 사운드 재생.
이 가이드를 시작하기 전에 기본 사용법을 완료하세요.
개요
UI 모듈은 반려동물의 주의를 끌기 위한 6가지 사운드를 내장하고 있습니다. io.petnow.ui.sound의 SoundPlayer가 이 사운드를 재생하며, 카메라와 독립적이라 촬영 중이 아니라 촬영 전 안내 화면에서도 쓸 수 있습니다.
CameraController.playSound()는 1.5.0에서 deprecated입니다
CameraController.playSound() / stopSound()는 소스 호환을 위해 그대로 동작하지만 deprecation 경고가 발생합니다. SoundPlayer를 사용하세요.
사용 가능한 사운드
전체 사운드 목록
사운드 미리듣기
각 사운드를 클릭하여 미리 들어볼 수 있습니다. 반려동물의 반응을 테스트해보세요!
아래 미리듣기 이름은 샘플 오디오 파일명이며, 실제 코드에서는 SoundType 열의 상수를 사용합니다.
| 사운드 | SoundType | 설명 | 대상 | 미리듣기 |
|---|---|---|---|---|
| 🥔 bagOfChips | BAG_OF_CHIPS | 과자 봉지 바스락 소리 | 🐕🐱 모두 | |
| 🥫 openingCan | OPENING_CAN | 캔 따는 소리 | 🐕🐱 모두 | |
| 🍚 pouringFood | POURING_FOOD | 사료 따르는 소리 | 🐕🐱 모두 | |
| 🥣 shakeFood | SHAKERS | 사료 흔드는 소리 | 🐕🐱 모두 | |
| 🧸 squeakyToy | DOG_ONLY_SQUEAKY_TOY | 삑삑이 장난감 소리 | 🐕 강아지 | |
| 😽 pspspsSound | CAT_ONLY_PSPSPS | 프스프스 소리 | 🐱 고양이 |
기본 사용법
1. 플레이어 생성과 준비
prepare()는 사운드 샘플을 로드하는 suspend 함수이므로 코루틴에서 호출합니다. 준비가 끝나기 전까지 play()는 아무 동작도 하지 않습니다.
import io.petnow.ui.sound.SoundPlayer
import io.petnow.ui.sound.SoundType
private val sounds = SoundPlayer(context)
private var soundHandle: Int = -1
lifecycleScope.launch {
sounds.prepare()
}2. 랜덤 사운드 재생
로드된 사운드 중 하나를 무작위로 재생합니다. Android의 RANDOM은 종을 구분하지
않으므로, 종에 맞는 사운드가 필요하면 SoundType을 직접 지정하세요.
soundHandle = sounds.play(SoundType.RANDOM)play()는 중지에 쓰는 핸들을 반환합니다. 준비가 끝나지 않았거나 대응하는 샘플이 없으면 -1을 반환합니다.
3. 특정 사운드 재생
원하는 사운드를 직접 선택하여 재생합니다.
// 캔 따는 소리
soundHandle = sounds.play(SoundType.OPENING_CAN)4. 사운드 중지
sounds.stop(soundHandle)5. 플레이어 해제
화면이 사라질 때 네이티브 자원을 해제합니다. 해제한 인스턴스는 다시 쓸 수 없으므로, 사운드가 또 필요하면 새로 만드세요.
override fun onDestroy() {
sounds.release()
super.onDestroy()
}