【问题标题】:How to use android mediaplayer on motionevent如何在motionevent上使用android媒体播放器
【发布时间】:2014-04-28 23:55:08
【问题描述】:

我正在尝试为我的游戏设置触摸声音,但最终 MediaPlayer mp = MediaPlayer.create(this, R.raw.move); 行出现错误有什么建议么?谢谢

@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);
}

【问题讨论】:

  • 您的触摸监听器是匿名(内联)实例吗?如果是这样,那么this 将引用不是有效Context 的侦听器。要修复它,您可以使用 MyActivity.this 代替(显然将 MyActivity 替换为您的实际 Activity 的名称。
  • 其实如果我把它改成 final MediaPlayer mp = MediaPlayer.create(this, R.raw.move); mp.start();我是 android 新手,我正在尝试在这里修改其他人的代码以添加一些功能。
  • 你介意看看完整的课程吗?
  • 如果您编辑问题以包含活动的完整代码,我会看看。
  • 这里发帖好像太长了。这是代码dropbox.com/s/t0ciqiik15fc3fl/gameclass.txt thx的记事本的保管箱链接

标签: android motionevent


【解决方案1】:

MediaPlayercreate(...) 方法需要Context 作为第一个参数。问题很可能是您的 Game 类是 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 使用...

final MediaPlayer mp = MediaPlayer.create(context, R.raw.move);

【讨论】:

  • 感谢它成功了!!!我想添加到游戏中的另一个功能是我创建了一个菜单,并且我想要一个重启选项。我是在主要活动中创建方法还是需要在 Game 类上使用清晰的棋盘方法
  • 没关系,我能做到,感谢本教程stackoverflow.com/a/22213380/3551857
  • 这是一款 Tictactoe 2 玩家游戏,但我希望它无法撤消移动,任何人都可以建议如何实现它。现在,如果我在一个图块上放置一个圆圈,当我再次按下同一个图块时,它可以用叉号撤消。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多