如何在MotionEvent.ACTION_DOWN时重复声音效果

时间:2012-10-04 11:12:08

标签: android android-mediaplayer

我尝试将setLooping设置为true,但没有任何结果。我希望在检测到事件时重复声音效果,并在释放时停止重复。

public class MainActivity extends Activity implements SurfaceHolder.Callback {
  MediaPlayer player;
  public void onCreate(Bundle savedInstanceState) {
    player = MediaPlayer.create(this, R.raw.rifle);
    player.setLooping(true);
  }
  @Override
  public boolean onTouchEvent(MotionEvent event) {
    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int height = metrics.heightPixels;
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
      int ey = (int) event.getY();
      if (ey > height / 2) {
        player.start();
      }
    }
    return super.onTouchEvent(event);
  }
}

2 个答案:

答案 0 :(得分:0)

if (event.getAction() == MotionEvent.ACTION_DOWN) {
  // start music
}
else if (event.getAction() == MotionEvent.ACTION_UP) {
  // stop music
}

答案 1 :(得分:0)

你没有准备好播放器。

你不能在没有准备的球员上打电话给你。