마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

SoundPool 관련 소스를 제작했는데 소리가 날때도 있고 안날때도 있어요

0 추천
        sp = new SoundPool(1 , AudioManager.STREAM_MUSIC , 0);
        id = sp.load(this , R.raw.typing , 1);
	th = new Thread();
	th.start();
	
	//스레드 본체
	class Thread extends Thread {
		//스레드 실행중
		public void run() {
			handler.sendEmptyMessage(2);
			for(i=0 ; i<=(100) ; i++) {
			}
		}
	}
	
	//핸들러 본체
	Handler handler = new Handler(){
		public void handleMessage(Message msg) {
			//main 스레드가 아니면 view 속성을 바꿀수 없어서 핸들러 사용
			if(msg.what == 2){
		    	sp.play(id , 1 , 1 , 0 , -1 , 1); //(식별자 , 왼쪽볼륨 , 오른쪽볼륨 , 우선순위 , 반복횟수 , 속도)
			} else if(msg.what == 0){
				sp.stop(id);
                finish();
			}
		}
	};

대략적으로 A 와 B Activity가 있을때

A에서 B로 버튼을 눌러 넘어오면 B Activity에서 바로 소리가 나는 구조입니다.

그런데 실행해보면 어쩔땐 소리가나고 어쩔땐 안나고 그래요... 왜그러죠? 도와주세요..

kmg123 (1,080 포인트) 님이 2014년 2월 5일 질문

1개의 답변

0 추천
 
채택된 답변
자답입니다.

 

이유는 모르겠지만 Activity 띄우면서 SoundPool을 실행하면 두개가 겹치면서 오류가 나나봅니다.

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ해결법ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

Activity가 실행하자마자 Thread가 실행되면서 soundpool을 호출했는데

Activity 실행과 soundpool 호출 사이에 잠깐의 시간을 지연시키고 했더니 계속 소리가 잘 나네요

이유는 모르겠는데 이유아시는분 알려주시면 감사하겠습니다.
kmg123 (1,080 포인트) 님이 2014년 2월 5일 답변
kmg123님이 2014년 11월 27일 채택됨
...