본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] SoundPool(사운드 풀). 우리도 안드로이드에서 소리 좀 내보자구요.

by 돼지왕 왕돼지 2012. 2. 28.
반응형


안녕하세요 돼지왕 왕돼지입니다.

오늘은 SoundPool( 사운드 풀 )에 대해 알아보겠습니다.



Sound Pool (사운드 풀 )이 뭔가요?


Sound ( 소리 ) + Pool ( 풀장 ). 즉, 소리를 모아놓은 녀석이라고 보시면 되겠습니다. 소리를 미리 로드해서 풀장에 저장해놓고, 필요할때마다 바로 쓸 수 있는 것이죠. 메모리 관리 측면에서 용량이 큰 mp3 파일들 보다는 비프음, 경고음 등의 간단한 소리를 저장할 때 주로 사용됩니다. 게임같은 곳에서 반복적으로 나는 소리에 대해서도 많이 사용하죠. 매번 로드하려고 하면 시간도 오래걸리고 메모리를 효율적으로 사용하는 것이 아니니 말이죠.




API 랑 예제

 
<APIs>

SoundPool (int maxStreams, int streamType, int secQuality)
 -> maxStreams : 최대 스트림 개수
 -> streamType : 보통 STREAM_MUSIC
 -> secQuality : 샘플링 품질
 
int load (Context context, int resId, int priority)
int load (String path, int priority)
  -> return되는 int값은 고유 식별자
  -> priority : 재생 우선순위 (default는 1)
 
int play(int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)
 -> soundID : load가 리턴한 int 식별자
 -> Volume : 0이 가장 작은 소리, 1이 가장 큰 소리
 -> loop : 반복 모드, 지정값 +1회 반복(0이면 1회). -1이면 무한 반복
 -> rate : 1-정상속도,  0.5-절반속도,  2-2배속 


<example>

SoundPool pool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
int ding = pool.load(this, R.raw.ding, 1);
pool.play(ding, 1, 1, 0, 0, 1);



로그인 없이 추천 가능합니다. 손가락 꾸욱~

반응형

댓글