function play() 내 for 루프를 사용하여 일부 사운드 재생을 시작하고 중지 할 때 동일한 버튼을 사용하고 싶습니다. 잠금 변수를 사용하여이 작업을 수행하는 것으로 생각했지만, 함수 재생 종료가 끝날 때까지 클릭 한 상태를 유지합니다. 몇 가지 해결책을 제안 할 수 있습니까? 이 문제를 play()
내부 try {Thread.sleep(1000);
입니다버튼을 누른 채로 메서드가 끝날 때까지 계속됩니다.
public class MainActivity extends Activity {
private static SoundPool sound;
static int lock=1;
int s;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sound=new SoundPool(20, AudioManager.STREAM_MUSIC, 100);
s=sound.load(this,R.raw.bipsound, 0);
Button button = (Button) findViewById(R.id.button);
}
public void onClick(View v) {
switch(lock) {
case 0:
lock=1;
break;
case 1:
lock=0;
play();
break;
}
}
public void play(){
for(int i=0;i<10;i++){
sound.play(s,1.0f, 1.0f, 1, 0, 1);
if(lock==1)
return;
try {Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}