코드는
public class MainActivity extends Activity {
private MediaPlayer sndemb;
private MediaPlayer sndfir;
private MediaPlayer sndpol;
private MediaPlayer sndsil;
private MediaPlayer sndwar;
boolean statemb = false;
boolean statfir = false;
boolean statpol = false;
boolean statsil = false;
boolean statwar = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btnemb).setOnClickListener(mClickListener);
findViewById(R.id.btnfir).setOnClickListener(mClickListener);
findViewById(R.id.btnpol).setOnClickListener(mClickListener);
findViewById(R.id.btnsil).setOnClickListener(mClickListener);
findViewById(R.id.btnwar).setOnClickListener(mClickListener);
sndemb = MediaPlayer.create(this, R.raw.sirenemb);
sndfir = MediaPlayer.create(this, R.raw.sirenfir);
sndpol = MediaPlayer.create(this, R.raw.sirenpol);
sndsil = MediaPlayer.create(this, R.raw.sirensil);
sndwar = MediaPlayer.create(this, R.raw.sirenwar);
}
OnClickListener mClickListener = new View.OnClickListener() {
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnemb:
if(statemb) {
sndemb.stop();
sndemb.setLooping(false);
statemb = false;
}
else {
sndemb.start();
sndemb.setLooping(true);
statemb = true;
}
break;
case R.id.btnfir:
if(statfir) {
sndfir.stop();
sndfir.setLooping(false);
statfir = false;
}
else {
sndfir.start();
sndfir.setLooping(true);
statfir = true;
}
break;
case R.id.btnpol:
if(statpol) {
sndpol.stop();
sndpol.setLooping(false);
statpol = false;
}
else {
sndpol.start();
sndpol.setLooping(true);
statpol = true;
}
break;
case R.id.btnsil:
if(statsil) {
sndsil.stop();
sndsil.setLooping(false);
statsil = false;
}
else {
sndsil.start();
sndsil.setLooping(true);
statsil = true;
}
break;
case R.id.btnwar:
if(statwar) {
sndwar.stop();
sndwar.setLooping(false);
statwar = false;
}
else {
sndwar.start();
sndwar.setLooping(true);
statwar = true;
}
break;
case R.id.btnstp:
}
}
};
}
입니다.
분명히 구상한대로라면 버튼을 한번눌렀을땐 미디어플레이어를 재생하고, 루프를 트루로 반환하고 불린값을 트루로 반환하고, 두번째누르면 미디어플레이러를 멈추고, 루프를 펄스로 반환, 불린값을 펄스로 반환합니다. 이대로라면 세번째 눌렀을 때에 불린값이 펄스이므로 다시 재생이 되야 하는데..! 이상하게 두세번째 눌렀을 때 재생이 안되네요... 분명히 불린값은 펄스일텐데..