0

を true に設定しようとしましたがsetLooping、結果はありませんでした。イベントが検出されている間は効果音を繰り返し、離すと繰り返しを停止したいと思います。

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

プレーヤーを準備していません。

準備ができていないプレーヤーに対して開始をコールすることはできません。

于 2012-10-04T11:19:54.227 に答える