【问题标题】:On/Off Music in AndroidAndroid中的开/关音乐
【发布时间】:2013-08-19 14:15:29
【问题描述】:

我的安卓游戏主菜单有四个按钮。在我的选择中,有开和关。当用户单击打开按钮时,音乐应该在我开始单击播放时播放。如果用户点击关闭,音乐将不会播放。但默认是,音乐会播放。

我尝试自己编写代码,如果用户单击on 按钮,则此sign 变量将设置为1,并且此值将传递给播放活动。如果符号值等于 1,则开始播放音乐;如果为 0,则不播放音乐。但是,这样做之后,当我点击关闭后,它会导致我的游戏的“FORCE CLOSE”。

我的 Options 活动有以下代码:

musicOn.setOnClickListener(new OnClickListener(){

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub

    Intent put = new Intent(getApplicationContext(), Level1.class); 

    musicSwitch = 1;
    Bundle cargo = new Bundle();
    cargo.putInt("sign", musicSwitch);

    put.putExtras(cargo);
    }
});

musicOff.setOnClickListener(new OnClickListener(){

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

    Intent put = new Intent(getApplicationContext(), Level1.class);             
    musicSwitch = 0;
    Bundle cargo = new Bundle();
    cargo.putInt("sign", musicSwitch);

    put.putExtras(cargo);
    }

});

这是我的一级活动:

int value=1;

Bundle cargo = getIntent().getExtras();
value = cargo.getInt("sign");

if(value==1){
MediaPlayer mPlayer = MediaPlayer.create(Level1.this, R.raw.sounds);
mPlayer.start();
mPlayer.setLooping(true);
}

【问题讨论】:

  • 您需要更具体一些,并发布一些代码
  • 已添加代码 :) 抱歉。
  • 你能发一下logcat吗?

标签: java android audio audio-player android-music-player


【解决方案1】:

为了更准确,请发布 logcat。

我认为这是强制关闭,因为您没有告诉它当值等于 0 时该做什么。

if(value==1){
MediaPlayer mPlayer = MediaPlayer.create(Level1.this, R.raw.sounds);
mPlayer.start();
mPlayer.setLooping(true);
} else if(value == 0){
mPlayer.stop();
}

并且我建议您将 mPlayer 设为静态,而不是仅在 if 语句中。

【讨论】:

    【解决方案2】:

    您正在创建 Intent,但没有对它们做任何事情。我想你是假设

    Intent put = new Intent(getApplicationContext(), Level1.class); 
    

    将允许您向最初启动 Activity 的 Intent 添加额外内容,但事实并非如此。你创建的这个 Intent 不会做任何事情,除非你用它来启动一个新的活动。 onClick 方法完成后,它只会被 GC 转储。

    因此,当您运行 getIntent().getExtras(); 时,它返回的 Bundle 不会包含您在该 onClick 方法中添加的附加内容。

    最好使用视图和活动都可以访问的静态成员变量。如果您希望它在游戏会话之间持续存在,请将其存储在 SharedPreference 中。

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-20
      • 1970-01-01
      相关资源
      最近更新 更多