앱 만들기

안드로이드 효과음 재생하기.

나도처음이야 2020. 6. 7.
반응형

 

 

안드로이드 사운드를 재생하자. Media Player 다루기

안드로이드 앱을 개발할 때 사운드를 재생하는 방법을 이야기해보자. 앱을 만들 때 소리가 없으면 심심하지 않은가? 사운드는 크게 2가지, 효과음과 BGM 등으로 나뉠 수 있다. 안드로이드에서는 �

soo0100.tistory.com

 

안드로이드에서 효과음을 재생하는 방법을 알아보자.

효과음은 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;
  }

}

 

이렇게 사운드를 구현하면 하기와 같은 

효과음 재생 앱이 탄생하게 된다. 감사합니다 :)

 

반응형

댓글