두 가지 유형의 앱에서 두 가지 유형의 MediaPlayer를 재생할 수 있습니다. 하나는 다음 단어/음향 효과를 재생할 때까지 기다리는 단일 변수입니다. 이것은 잘 작동하는 것 같습니다. 다른 하나는 동시에 재생되는 최대 4 개의 MediaPlayer 변수 세트입니다. 이것은 2.3.3에서 작동하며 4.0.3 가상 장치에서 작동하는 것으로 보이지만 TF101에서는 두 응용 프로그램 모두에서 충돌이 발생합니다.Android ICS MediaPlayer가 동시 재생 용 변수에서만 충돌합니다.
잘못된 터치로 playse ('oops')가 호출됩니다. 4 개 변수는 다음과 같이 처리하는 응용 프로그램의 메인 루프에서
public void playse(String ss){
MediaPlayer tempse;
if(tse1 == null){tempse = tse1;}
else{if(tse2 == null){tempse = tse2;}
else{if(tse3 == null){tempse = tse3;}
else{if(tse4== null){tempse = tse4;}}}}
if(ss == "oops"){ tempse = MediaPlayer.create(mContext, R.raw.seoops); tempse.start();}
}
:
if(tse1 != null){ if(tse1.isPlaying()== false){tse1.release(); tse1= null;} }
if(tse2 != null){ if(tse2.isPlaying()== false){tse2.release(); tse2= null;} }
if(tse3 != null){ if(tse3.isPlaying()== false){tse3.release(); tse3= null;} }
if(tse4 != null){ if(tse4.isPlaying()== false){tse4.release(); tse4= null;} }
귀하의 질문은 실제로 당신이하려는 것을 설명하지 않습니다. 그러나 그것과는 별도로,'=='을'Strings'에 대한 비교로 사용하면 결코 예측할 수없는 결과를 초래할 수 있습니다. 'if (ss == "oops")'를 if (ss.equals ("oops"))'로 변경하십시오. – Squonk