2017-04-12 83 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