0

我试图将其设置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);
  }
}
4

2 回答 2

0
if (event.getAction() == MotionEvent.ACTION_DOWN) {
  // start music
}
else if (event.getAction() == MotionEvent.ACTION_UP) {
  // stop music
}
于 2012-10-04T11:16:14.353 回答
0

您没有准备播放器。

你不能在一个没有准备好的玩家上调用 start。

于 2012-10-04T11:19:54.227 回答