안드로이드에서 효과음을 재생하는 방법을 알아보자.
효과음은 BGM 과는 달리 간단 명료히 SoundPool 객체를 사용하면 된다.
이전 강에서 언급한듯이 리소스 폴더 밑에 raw 폴더를 만들고, 효과음을 넣어둔다.
사용법은 하기와 같다.
1. 사운드 참조변수 를 선언하자.
SoundPool soundPool = null;
2. 객체 생성하기
// 주의 할 점은 롤리팝 버전에 따라서 객체를 생성하는 방법이 상이하다.
// 하기 처럼 작업을 해주면 모든 버전에서 사용이 가능하다.
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
soundPool = new SoundPool.Builder().build();
}else{
//폴리팝 이하 버전일 경우
// 음악 파일 갯수, 스트림 타임, 음질
soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC,0);
}
3. 효과음 파일 로드하기.
// 두번째 인자 값으로는 Raw 폴더에 재생을 원하는 사운드 파일을 넣어준다
세번째 인자 값은 효과음들의 재생 운선 순위 이다.
int soundId = soundPool .load(mContext, R.raw.soundfileName,1)
4. 효과음 재생하기
soundPool .play(soundId , 1.0f , 0, 0, 1.0f);
첫번째 인자 : 3번에서 생성된 사운드 아이디
2번째 인자 : 왼쪽 볼륨값 0~1.0f
3번재 인자 : 오른쪽 볼륨값 0~1.0f
4번째 인자 : 반복 플래그 -1 설정시 무한 반복.
5번째 인자 : rete 율. 빠르기 설정. 0~1.0f
5. 종료 시 메모리 해제
SoundPool 을 다룰때 주의사항은
앱 종료시 항상 메모리를 해제 해주어야 한다는 것!
protected void onDestroy() {
super.onDestroy();
// 메모리 해제하여 자원을 반납 하자.
if(soundPool != null)
{
soundPool.release();
soundPool = null;
}
}
이렇게 사운드를 구현하면 하기와 같은
효과음 재생 앱이 탄생하게 된다. 감사합니다 :)
'앱 만들기' 카테고리의 다른 글
구글개발자 콘솔 데이터 보안양식이 잘못됨 경고 또는 앱 삭제시 조치 방법 (2) | 2023.05.24 |
---|---|
구글 플레이 리뷰 그리고 나비 효과... (8) | 2020.10.21 |
1인 개발자가 꼭 알아야 할 무료 폰트 사이트 (6) | 2020.09.19 |
구글 플레이에 앱 노출이 안되는 이유. (20) | 2020.05.13 |
플래쉬 라이트 앱을 만들다. 달빛 (2) | 2020.04.23 |
댓글