使用切换按钮控制声音

Use toggle button to control sound

我需要我的应用程序在选中切换按钮时播放所有声音,并在 unchecked.By 时停止播放所有声音我的意思是当其他按钮出现在 activity 和其他活动被压下。

以下是我的切换按钮:

<ToggleButton
    android:layout_width="70dp"
    android:layout_height="70dp"
    android:id="@+id/toggleButton"
    android:button="@drawable/check"
    android:background="@null"
    android:onClick="togglesound"
   />

Check.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use grey -->
<item android:drawable="@drawable/speaker"
android:state_checked="true" />
<!-- When not selected, use white-->
<item android:drawable="@drawable/stopsound"
android:state_checked="false"/>
</selector>

我使用了一个静态变量 "play",我打算在切换按钮被选中时将其值设置为 1,在未选中时设置为 0。

 public void togglesound(View view) {
    boolean on = ((ToggleButton) view).isChecked();

    if (on) {
     play=1;
        // Enable sound
    } else {
       play=0;
        // Disable sound

    }

在此之后我使用 "play" 来播放所需的声音

 if(play==1) 
 {
 over = MediaPlayer.create(Play.this, R.raw.over);
 over.start();
 over.setOnCompletionListener(
 newMediaPlayer.OnCompletionListener()
 {    
 public void onCompletion(MediaPlayer mp) {
 mp.release();
                }

            });
        }
 else
 {}

我面临的问题是切换按钮在第一次点击时工作正常,但即使未选中切换按钮也会播放声音。

终于修好了!!

我没有使用 "play" 和 "on",而是只使用 "play",这是一个静态布尔值 variable.So,代码简化为 -

public void togglesound(View view) {
      play = ((ToggleButton) view).isChecked();
      }

而且我不得不添加几行来保存切换按钮的状态。

 private static Bundle bundle = new Bundle();
 ToggleButton tg=(ToggleButton)findViewById(R.id.toggleButton);

   public void onPause() {
    super.onPause();
    bundle.putBoolean("ToggleButtonState", play);
     }

@Override
public void onResume() {
    super.onResume();
    tg.setChecked(bundle.getBoolean("ToggleButtonState",false));
     }