안드로이드 개발 질문/답변
(글 수 45,052)
m_sound_pool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
sound_beep = m_sound_pool.load(this ,R.raw.bop, 1);
@Override
public boolean onTouchEvent(MotionEvent event) {
if (MotionEvent.ACTION_DOWN==event.getAction()) {
m_sound_pool.play( sound_beep, 1f, 1f, 0, 0, 1f );
}
return true;
}
이렇게 화면을 터치했을때 소리가 한번씩 나게 짰는데
어쩔때는 한번 누를때 소리가 한번만 나는데요. (한번만 나면 어플 종료하기전까지 항상 터치한번에 소리 한번만)
그런데 가끔 터치 한번에 소리가 2번이 날때가 있어요. 그렇게 소리가 나기 시작하면 항상 2번씩 소리가 납니다;;
이유를 전혀 모르겠어요.. 아시는분들 답변 부탁드립니다.ㅠ
아 그리고 사운드 풀로 소리를 나게 하면 항상 잡음이 섞입니다..
sound_beep = m_sound_pool.load(this ,R.raw.bop, 1);
@Override
public boolean onTouchEvent(MotionEvent event) {
if (MotionEvent.ACTION_DOWN==event.getAction()) {
m_sound_pool.play( sound_beep, 1f, 1f, 0, 0, 1f );
}
return true;
}
이렇게 화면을 터치했을때 소리가 한번씩 나게 짰는데
어쩔때는 한번 누를때 소리가 한번만 나는데요. (한번만 나면 어플 종료하기전까지 항상 터치한번에 소리 한번만)
그런데 가끔 터치 한번에 소리가 2번이 날때가 있어요. 그렇게 소리가 나기 시작하면 항상 2번씩 소리가 납니다;;
이유를 전혀 모르겠어요.. 아시는분들 답변 부탁드립니다.ㅠ
아 그리고 사운드 풀로 소리를 나게 하면 항상 잡음이 섞입니다..
2010.09.05 17:09:56
제가 잘못봤네요.
m_sound_pool.release(); 혹시 이거 관련 인건 아닐까요?
잡음은...ogg로 안바꾸고 대충 아무 샘츨 가져다 할때 잡음만 나오긴 하던데요. 완전 잡음만.
볼륨 1f는 소리 너무 안작나요?
2010.11.29 16:48:40
저도 똑같은 현상이 있었는데요. 아래 레퍼런스에서 처럼
int android.media.SoundPool.play(int
soundID, float leftVolume, float rightVolume, int priority, int loop, float
rate)
5번째 파라미터인 loop를 0으로 변경해주니깐 1번만 재생하고 종료되더라고요.
저랑 다른점은 "sound_beep = m_sound_pool.load(this ,R.raw.bop, 1);"에서 맨 마지막 파라미터인 우선순위를 1이 아닌 0으로
줬다는 정도네요. (앗, 이것도 상관없네요. 1로 해도 저는 한번만 재생되고 종료됩니다.)
위의 소스외에 다른 부분의 영향으로 이벤트가 2번씩 호출되는건 아닌가 생각되네요;;
그리고, 릴리즈 여부는 상관없을 듯 합니다. 저는 아직 릴리즈구문을 추가하지 않았거든요.
또, 볼륨은 왼쪽, 오른쪽 모두 0.0~1.0까지기 때문에 gas님이 사용하신 1.0f이 최대인 듯 합니다.
터치할때 나고 뗄때나고 움직이면 세번까지 날거 같은데요.