这就是我想要实现的目标:当用户按下“按钮A”时,30秒“sound.mp3”开始反复播放200秒然后停止。 “按钮B”播放相同的声音400秒并停止。 这是我的最后一次尝试,使用CountDownTimer(不确定这是最好的方法,甚至可能):
public class MyClass extends Activity {
MediaPlayer player_test;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_rain);
my_player();
}
public void my_player(){
player_test = MediaPlayer.create(getApplicationContext(), R.raw.mysound);
player_test.setLooping(true);
player_test.start();
}
public void onCompletion(MediaPlayer player_test) {
player_test.stop();
player_test.release();
}
});
public void player_OnClick(View v) {
switch (v.getId()) {
case R.id.button_a:
new CountDownTimer(200000, 1000) {
public void onTick(long millisUntilFinished) {
player_test.start();
}
public void onFinish() {
player_test.pause();
}
}.start();
break;
case R.id.button_b:
new CountDownTimer(400000, 1000) {
public void onTick(long millisUntilFinished) {
player_test.start();
}
public void onFinish() {
player_test.pause(); }
}.start();
break;
}
}
感谢您的回答。
答案 0 :(得分:2)
这是一个很好的方法。但是,您应该在代码中修复一些要点:
player_test.start()
,这会导致玩家在创建活动时开始播放。您应该只在该方法中实例化my_player()
对象。player_test
。你只需要打电话一次就可以开始玩了。点击任何按钮A或B时,请致电player_test.start()
。