0

我想创建一个图像按钮的方法,当它点击背景音乐停止和图像按钮改变另一个图像,当再次按下它将返回,因为它是在第一次和重播音乐,我试图布尔时这是真的,音乐开始,当它是错误的音乐,但它不工作! 另外我怎么可以让另一个活动播放或停止音乐取决于主要活动?如何在ImageButton上点击另一个活动中的声音?

public class MainActivity extends AppCompatActivity { 
MediaPlayer mp ; 
ImageButton SoundButton; 
ImageButton NoSoundButton; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    SoundButton = new ImageButton(this); 
    NoSoundButton = new ImageButton(this); 
    /*---------Image Buttons--------*/ 

    SoundButton=(ImageButton) findViewById(R.id.sound); 
    SoundButton.setVisibility(View.GONE); 
    NoSoundButton=(ImageButton) findViewById(R.id.nosound); 
    NoSoundButton.setVisibility(View.VISIBLE); 

    /*---------Media Player--------*/ 

    mp = new MediaPlayer(); 
    mp = MediaPlayer.create(this, R.raw.aud); 
    mp.setLooping(true); 
    mp.start(); 
} 

public void nosound(View view) { 
    SoundButton.setVisibility(View.VISIBLE); 
    NoSoundButton.setVisibility(View.INVISIBLE); 
    mp.stop(); 
    mp.prepareAsync(); 
} 

public void sound(View view) { 
    SoundButton.setVisibility(View.INVISIBLE); 
    NoSoundButton.setVisibility(View.VISIBLE); 
    mp.start(); 
} 

}

+0

莫非你提供给我们你到目前为止使用的代码吗? –

+1

我们必须知道:您使用什么来播放音乐?你如何改变你的照片?你是否设置了一个onclicklistener等。 –

+0

编辑你的问题,并插入代码 –

回答

1

1)你必须改变你的MediaPlayer的初始化的位置。

MediaPlayer mp = new MediaPlayer(); 

public class MainActivity extends AppCompatActivity { 

     boolean SoundStatus; 
     MediaPlayer mp; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      mp = new MediaPlayer(); 
      mp = MediaPlayer.create(this, R.raw.aud); 
      mp.setLooping(true); 
      mp.start(); 
     } 
      public void sound(View view) { 
      SoundStatus = true; 
      if (SoundStatus) { 
       mp.stop(); 
       SoundStatus = false; 
      } 
      else { 
       mp.start(); 
       SoundStatus = true; 
      } 
     }} 

当然,确保音频文件存在。


2)如何通过一个按钮状态

你可以通过活动之间使用捆绑的按钮状态就像下面

开始活动2

Intent intent = new Intent(this, Activity2.class); 
intent.putExtra(EXTRA_NAME, VALUE); 
startActivity(intent); 

获取该值在活动2中就像

@Override 
protected void onCreate(Bundle savedInstanceState) { 
.... 
boolean value = getIntent().getExtras().getBoolean(EXTRA_VALUE); 
} 

,然后做同样类似上面,将它传递给活动3

或者

你可以做一个静态变量在你活动1然后访问该活动从3

+0

mp只是'onCreate'内部已知的!在方法'声音'它是未知的 –

+0

那么,然后把mediaplayer mp全局或通过mediaplayer作为参数 –

+0

更新我的代码..现在试试吧,顺便说一句,你注意到你从来没有调用方法'声音'? –

相关问题