2017-04-12 5 views
-6

私は、あるサウンドを500msごとに再生するタイマーにリンクされたボタンを持っています。これは、意図したとおりに働いているが、私はそれがに4回ごとのループ異なるサウンドを再生したい:Android - タイマーで音を交換する

SOUND1 SOUND1 SOUND1sound2SOUND1 SOUND1 SOUND1sound2などを...

誰もこれを行う正しい方法を知っていますか?あなたのスレッドで

final MediaPlayer sound1 = MediaPlayer.create(this, R.raw.snd1); 
final MediaPlayer sound2 = MediaPlayer.create(this, R.raw.snd2); 

Button play = (Button)findViewById(R.id.button1); 

play.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Timer timer = new Timer("click", true); 
     TimerTask tone = new TimerTask(){ 
      @Override 
      public void run(){ 
       sound1.start(); 
      } 
     }; 
     timer.scheduleAtFixedRate(tone, 500, 500); 
    } 
}); 
+0

、カウンタが4で割り切れるであれば、それ以外の音1音を再生する2.を果たしています。 –

答えて

1

あなたは、次のとおりです。あなたのループでは

final MediaPlayer sound1 = MediaPlayer.create(this, R.raw.snd1); 
final MediaPlayer sound2 = MediaPlayer.create(this, R.raw.snd2); 
int sound = 1; 
Button play = (Button)findViewById(R.id.button1); 

play.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Timer timer = new Timer("click", true); 
     TimerTask tone = new TimerTask(){ 
      @Override 
      public void run(){ 
       if (sound % 4 != 0){ 
       sound1.start(); 
       sound += 1; 
       }else{ 
       sound2.start(); 
       sound = 1; 
      } 
     }; 
     timer.scheduleAtFixedRate(tone, 500, 500); 
    } 
}); 
0

if(count/4 == 1){ 
    playSound2(); 
    count = 1; 
}else{ 
    playSound1(); 
    count++; 
} 

カウントは、あなたのクラスで宣言する変数です:

int count = 1; 

そして、あなたが停止する必要があり、あなたがcountをリセットしてください。ここで

関連する問題