티스토리 뷰
SoundPool 이란 Android 개발중 앱내에서 Sound를 재생해야 할 때 쓰이는 Class입니다.
#객체 생성
private SoundPool sound_pool;
sound_pool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
SoundPool의 파라메터를 보겠습니다.
공식 Document를 보면 다음과 같이 정의되어 있습니다.
SoundPool (int maxStreams, int streamType, int srcQuality)
- maxStreams에는 최대로 동시에 재생 가능한 음악파일 숫자를 넣습니다.
- streamType는 재생 타입입니다. 보통은 AudioManager.STREAM_MUSIC을 씁니다.
- srcQuality는 음악재생 품질을 나타냅니다. 0이 default입니다.
#파일 가져오기
sound_pool 객체를 생성했으니 재생할 파일을 Load합니다.
int sound_beep_alert = sound_pool.load(this, R.raw.alert_error, 1);
load() 함수를 이용해서 재생시킬 파일을 불러옵니다. (mp3, wav 확장자 둘다 가능합니다)
#파일 재생
sound_pool.play(sound_beep_alert, 1f, 1f, 0, 0, 1f);
play()함수를 이용해서 파일을 재생시킵니다.
play함수의 파라메터를 살펴보겠습니다.
int play (int soundID,
float leftVolume,
float rightVolume,
int priority,
int loop,
float rate)
- soundID : 재생시킬 파일의 resID
- leftVolume : 왼쪽 볼륨 크기 (range : 0.0 ~ 1.0)
- rightVolume : 오른쪽 볼륨 크리 (range : 0.0 ~ 1.0)
- priority : 우선순위 ( 0이 가장 낮음을 나타냅니다)
- loop : 재생횟수입니다. (0일경우 1번만 재생 -1일 경우에는 무한반복)
- rate : 재생속도입니다.0.5로 할 경우 2배 느리게 재생되고 2.0으로 할 경우 2배 빠르게 재생됩니다. (range : 0.5 ~ 2.0)
NOTE 재생이 제대로 되지 않을경우에는 Listener를 사용해야합니다.
sound_pool.setOnLoadCompleteListener (new SoundPool.OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int soundId, int status) {
sound_pool.play(sound_beep_alert, 1f, 1f, 0, 0, 1f);
}
});
파일을 정상적으로 load하지 못했는데 파일을 재생하려고 하는경우 Error가 발생하거나 소리가 정상적으로 출력되지 않습니다. 이럴 경우에는 위와 같이 Listener를 사용합니다. Listener는 soundPool이 파일 load를 끝낸직후 호출됩니다.
'개발 > Android' 카테고리의 다른 글
[Android] / 안드로이드 / googlemap distance / 구글맵 두 위치 사이의 거리 구하기 (0) | 2016.11.16 |
---|---|
[Android] / 안드로이드 / Marker Animation / 마커에 깜빡이는 애니메이션 효과주기 (0) | 2016.11.15 |
[Android] / 안드로이드 / OS version check / OS버전 체크 / OS별로 분기 (0) | 2016.10.27 |
[Android] / 안드로이드 / textView 부분색상 바꾸기 / text color / 텍스트 부분색 바꾸기 (1) | 2016.10.19 |
[Android] / 안드로이드 / HttpPost 한글 깨짐 현상 (0) | 2016.10.12 |
- Total
- Today
- Yesterday
- development
- dependencies
- comma
- 앱
- Android Studio
- 코드
- SyntaxHighlighter
- Google Map
- zindex
- Google Analytics
- 깜빡임
- play service
- 개발자
- JavaScript
- imagesize
- titlebat
- googlemap
- GoogleAnalytics
- 코드삽입
- 코드 넣기
- 마커
- Marker
- imageButton
- 구글맵
- jQuery
- Android
- 소스코드
- 개발
- 안드로이드
- GOOGLE PLAY
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |