Petnow LogoPetnow
Android SDK

사운드 가이드

SoundPlayer로 반려동물 주의를 유도하는 사운드 재생.


이 가이드를 시작하기 전에 기본 사용법을 완료하세요.

개요

UI 모듈은 반려동물의 주의를 끌기 위한 6가지 사운드를 내장하고 있습니다. io.petnow.ui.sound의 SoundPlayer가 이 사운드를 재생하며, 카메라와 독립적이라 촬영 중이 아니라 촬영 전 안내 화면에서도 쓸 수 있습니다.

CameraController.playSound()는 1.5.0에서 deprecated입니다

CameraController.playSound() / stopSound()는 소스 호환을 위해 그대로 동작하지만 deprecation 경고가 발생합니다. SoundPlayer를 사용하세요.

사용 가능한 사운드

전체 사운드 목록

사운드 미리듣기

각 사운드를 클릭하여 미리 들어볼 수 있습니다. 반려동물의 반응을 테스트해보세요!

아래 미리듣기 이름은 샘플 오디오 파일명이며, 실제 코드에서는 SoundType 열의 상수를 사용합니다.

사운드SoundType설명대상미리듣기
🥔 bagOfChipsBAG_OF_CHIPS과자 봉지 바스락 소리🐕🐱 모두
🥫 openingCanOPENING_CAN캔 따는 소리🐕🐱 모두
🍚 pouringFoodPOURING_FOOD사료 따르는 소리🐕🐱 모두
🥣 shakeFoodSHAKERS사료 흔드는 소리🐕🐱 모두
🧸 squeakyToyDOG_ONLY_SQUEAKY_TOY삑삑이 장난감 소리🐕 강아지
😽 pspspsSoundCAT_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()
}

On this page