2017-04-12 85 views
-6

我有一個鏈接到定時器的按鈕,它每隔500ms播放給定的聲音。這是工作的打算,但我希望它發揮不同的聲音上每4個循環:Android - 通過定時器交換聲音

Sound1例子Sound1例子SOUND1SOUND2Sound1例子Sound1例子Sound1例子SOUND2等。

有沒有人知道這樣做的正確方法?

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整除,播放聲音2.否則,播放聲音1。 –

回答

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