안드로이드

안드로이드 SoundPool 사용방법

알통몬_ 2020. 2. 19. 17:08
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


안드로이드에서 오디오를 재생하는 클래스가 2개 있습니다.


1. MediaPlayer

2. SoundPool 

오늘은 이 중 짧은 효과음 정도의 재생을 하는데 유용한 SoundPool

사용 방법에 대해 알아봅니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SoundPool mSoundPool
int mStreamId;
 
public void playMusic() {
    SoundPool mSoundPool = new SoundPool.Builder().build(); // 생성
    mSoundPool.load(getContext(), R.raw.typing_sound, 1); // 로딩
    mSoundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
        @Override
        public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
            {
                mStreamId = mSoundPool.play(sampleId, 1.0f, 1.0f, 1-11.0f); // 실행
            }
        }
    });
}
public void stopMusic () {
    // stop 메소드 사용시 streamId가 필요합니다.
   // streamId는 play 메소드 호출 시 반환 값입니다.
     mSoundPool.stop(mStreamId);
}
 
cs


사용법에 대해 간단히 알아보았습니다.

파라미터에 대해서도 봐야겠죠?

load(Context context, int res, int priority);

 res 

 실행할 오디오 파일

 priority

 우선순위입니다. 숫자가 작을수록 우선순위가 낮습니다.


play(int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate);

 soundID

 load에서 얻은 soundID입니다.

 leftVolume

 왼쪽 소리크기 ( 0.0f ~ 1.0f)

 rightVolume

 오른쪽  소리크기 ( 0.0f ~ 1.0f)

 priority

 우선순위입니다. 숫자가 작을수록 우선순위가 낮습니다.

 loop

 반복 재생 여부입니다. 0 = 1번재생, -1 = 반복재생

 rate

 재생속도입니다. (0.5f ~ 2.0f,  기본값 : 1.0f)


이상입니다.

반응형