使用切换按钮控制声音
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));
}
我需要我的应用程序在选中切换按钮时播放所有声音,并在 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));
}