如何在motionevent上使用android mediaplayer

时间:2014-04-28 14:37:10

标签: android motionevent

我正试图为我的游戏设置一个触摸声音,但最后一行MediaPlayer mp = MediaPlayer.create(这个,R.raw.move)的错误;有什么建议? THX

@Override
public boolean onTouchEvent(MotionEvent event) {
    int x_aux = (int) (event.getX() / (this.getWidth() / x));
    int y_aux = (int) (event.getY() / (this.getHeight() / y));
    drawimage(x_aux, y_aux);
    final MediaPlayer mp = MediaPlayer.create(this, R.raw.move);
    setOnClickListener(new View.OnClickListener(){

        public void onClick(View v) {
            mp.start();
        }
    });
    return super.onTouchEvent(event);
}

1 个答案:

答案 0 :(得分:0)

create(...)的{​​{1}}方法需要MediaPlayer作为第一个参数。问题可能是你的游戏类是Context(它不会扩展View)所以使用Context作为第一个参数将无法正常工作。

您可以尝试保存对传递给构造函数的this的引用。在私人字段Context下,为private Paint caneta;添加一个。实施例...

Context

然后在构造函数中保存对传入的public class Game extends View { private Cell[][] singlesquare = null; int x = 3; int y = 3; private int l; private int a; private boolean whatdrawn = false; private int playerwin = 3; private Paint caneta; private Context context; // ADD THIS LINE 的引用。示例...

Context

然后当您创建public Game(Context context) { super(context); this.context = context; // ADD THIS LINE 使用...

Mediaplayer