私は次のことを行うためのアプリケーションを開発しています。
ボタンを押すと、アプリケーションは2秒間、5回続く音を再生します。サウンドを5回再生した後、アプリケーションは30秒間スリープします。寝た後、このサイクルがさらに2回繰り返されます。
私の問題は、5回目の再生後に音が止まらないことです。forループまたはwhileループを使用する必要があると思いますが、正しくプログラムできません。
ループ:
for(i=0; i==5; ) {
sound.start();
if(sound.isPlaying()) {
if(false) {
sound.stop();
i++;
}
}
}
sound.stop();
さて、今私はこのコードを作成しましたが、彼の唯一の欠点は「for」が正しく機能していないことです...彼は彼の内部にあるコードを2回繰り返していません。誰かが私に理由を教えてもらえますか?
for( counter=0; counter<2; ++counter){
new CountDownTimer(20000, 2000) {
public void onTick(long millisUntilFinished) {
//call to my UI thread every 2 seconds
sound.start();
}
public void onFinish() {
//final call to my UI thread after 10 seconds
chrono2.setBase(SystemClock.elapsedRealtime());
chrono2.start();
chrono2.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
public void onChronometerTick(Chronometer chronometer) {
// TODO Auto-generated method stub
long elapsedTime = SystemClock.elapsedRealtime()-chronometer.getBase();
Log.i(this.getClass().getName(), "" + elapsedTime);
if (elapsedTime > 10000){
chrono2.stop();
chrono2.setBase(SystemClock.elapsedRealtime());
Toast.makeText(getApplicationContext(), "" , Toast.LENGTH_SHORT).show();
}
}
});
} // end onFinish
}.start(); // end count down
}