2013-08-19 47 views
-1

我的主菜单有四个按钮用于安卓游戏。在我的选择中,有和关闭。当用户点击开启按钮时,当我开始点击播放时,音乐应该播放。如果用户点击关闭,音乐将无法播放。但默认情况下,音乐将播放。开启/关闭Android中的音乐

我试着自己编码,如果用户点击on按钮,那么这个sign变量将设置为1,并且这个值将传递给播放活动。如果符号值等于1,音乐将开始;如果为0,音乐将不会播放。但是,这样做后,我点击后,结果为“FORCE CLOSE”我的游戏。

我有我的选择活动验证码:

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

}); 

而这一次为我的1级活动:

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); 
} 
+1

您需要更具体,请发布一些代码 – Pavlos

+0

代码添加:)对不起。 – pingboo23

+0

你可以发布logcat吗? –

回答

0

请张贴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语句。

0

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

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

将让你额外添加到最初推出的活动意图,但事实并非如此。除非您使用它来启动新活动,否则您创建的这个意图不会执行任何操作。在onClick方法完成后,它只会被GC转储。

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

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