如何在motionevent上使用android mediaplayer

如何在motionevent上使用android mediaplayer,android,motionevent,Android,Motionevent,我正在尝试为我的游戏设置触摸声音,但在final MediaPlayer mp=MediaPlayer.createthis,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()

我正在尝试为我的游戏设置触摸声音,但在final MediaPlayer mp=MediaPlayer.createthis,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);
}
创建。。。MediaPlayer的方法要求上下文作为第一个参数。问题很可能是您的游戏类是一个不扩展上下文的视图,因此将其用于第一个参数将不起作用

您可以尝试保留对传递到构造函数中的上下文的引用。在私人领域下,私人涂料caneta;为上下文添加一个。例如

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
public Game(Context context) {
    super(context);
    this.context = context; // ADD THIS LINE
然后在构造函数中保存对传入上下文的引用。例如

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
public Game(Context context) {
    super(context);
    this.context = context; // ADD THIS LINE
然后在创建Mediaplayer时使用


您的touch listener是匿名内联实例吗?如果是这样,那么这将引用不是有效上下文的侦听器。要修复它,您可以使用MyActivity。这将明显地用实际活动的名称替换MyActivity。实际上,如果我将其更改为final MediaPlayer mp=MediaPlayer.createthis,R.raw.move;mp.start;我是android新手,我正在尝试修改其他人的代码以添加一些功能。你介意看一看完整的类吗?如果你编辑问题以包含活动的完整代码,我会看一看。它似乎太长,无法在这里发布。这是一个代码记事本的dropbox链接,感谢它的工作!!!另一个我想添加到游戏中的功能是我创建了一个菜单,我想有一个重启选项。我是否在主要活动中创建了一个方法,或者我需要在游戏类中使用一个clear board方法?无需担心,我能够做到这一点。这是一个Tictoe 2人游戏,但我希望它不能撤消移动。有人能建议如何实现它吗。现在,如果我把一个圆放在一块瓷砖上,当我再次按下同一块瓷砖时,它可以用十字架撤消。