如何关闭Android上所有的声音 [英] How to turn off all sounds on Android
本文介绍了如何关闭Android上所有的声音的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是新开发在Android上。我有一个切换按钮就可以了,当推将关闭所有声音,直到切换按钮再次按下一个视图。
I'm new developing on Android. I'm have a view with a ToggleButton on it that when pushed will turn off all sound until the ToggleButton is pushed again.
目前,我有这个code。我可以看到记录的事件发生,但声音没有关闭。任何人都可以提供一些见解?
Currently, I have this code. I can see the logging events happening, but the sound is not turning off. Can anyone provide some insight?
public void onToggleClicked(View view) {
Log.i("onToggleClicked", "ToggleClick Event Started");
// Is the toggle on?
boolean on = ((ToggleButton) view).isChecked();
if (on) {
Log.i("onToggleIsChecked", "ToggleClick Is On");
//turn off sound, disable notifications
amanager.setStreamMute(AudioManager.STREAM_SYSTEM, true);
Log.i("STREAM_SYSTEM", "Set to true");
//notifications
amanager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true);
Log.i("STREAM_NOTIFICATION", "Set to true");
//alarm
amanager.setStreamMute(AudioManager.STREAM_ALARM, true);
Log.i("STREAM_ALARM", "Set to true");
//ringer
amanager.setStreamMute(AudioManager.STREAM_RING, true);
Log.i("STREAM_RING", "Set to true");
//media
amanager.setStreamMute(AudioManager.STREAM_MUSIC, true);
Log.i("STREAM_MUSIC", "Set to true");
} else {
Log.i("onToggleIsChecked", "ToggleClick Is Off");
// turn on sound, enable notifications
amanager.setStreamMute(AudioManager.STREAM_SYSTEM, false);
Log.i("STREAM_SYSTEM", "Set to False");
//notifications
amanager.setStreamMute(AudioManager.STREAM_NOTIFICATION, false);
Log.i("STREAM_NOTIFICATION", "Set to False");
//alarm
amanager.setStreamMute(AudioManager.STREAM_ALARM, false);
Log.i("STREAM_ALARM", "Set to False");
//ringer
amanager.setStreamMute(AudioManager.STREAM_RING, false);
Log.i("STREAM_RING", "Set to False");
//media
amanager.setStreamMute(AudioManager.STREAM_MUSIC, false);
Log.i("STREAM_MUSIC", "Set to False");
}
Log.i("onToggleClicked", "ToggleClick Event Ended");
}
在此先感谢!
Thanks in advance!
推荐答案
我能够使它发挥作用,通过改变事件侦听器
I was able to make it work by changing the event to a listener
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//create the toggle button ref and instantiate
ToggleButton tb = (ToggleButton)this.findViewById(R.id.tglSetStatus);
tb.setTextOff(getString(R.string.available_status));
tb.setTextOn(getString(R.string.driving_status));
//default to being available
tb.setChecked(false);
// attach an OnClickListener
tb.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// your click actions go here
Log.i("onToggleClicked", "ToggleClick Event Started");
//an AudioManager object, to change the volume settings
AudioManager amanager;
amanager = (AudioManager)getSystemService(AUDIO_SERVICE);
// Is the toggle on?
boolean on = ((ToggleButton)v).isChecked();
if (on) {
Log.i("onToggleIsChecked", "ToggleClick Is On");
//turn ringer silent
amanager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
Log.i("RINGER_MODE_SILENT", "Set to true");
//turn off sound, disable notifications
amanager.setStreamMute(AudioManager.STREAM_SYSTEM, true);
Log.i("STREAM_SYSTEM", "Set to true");
//notifications
amanager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true);
Log.i("STREAM_NOTIFICATION", "Set to true");
//alarm
amanager.setStreamMute(AudioManager.STREAM_ALARM, true);
Log.i("STREAM_ALARM", "Set to true");
//ringer
amanager.setStreamMute(AudioManager.STREAM_RING, true);
Log.i("STREAM_RING", "Set to true");
//media
amanager.setStreamMute(AudioManager.STREAM_MUSIC, true);
Log.i("STREAM_MUSIC", "Set to true");
} else {
Log.i("onToggleIsChecked", "ToggleClick Is Off");
//turn ringer silent
amanager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
Log.i(".RINGER_MODE_NORMAL", "Set to true");
// turn on sound, enable notifications
amanager.setStreamMute(AudioManager.STREAM_SYSTEM, false);
Log.i("STREAM_SYSTEM", "Set to False");
//notifications
amanager.setStreamMute(AudioManager.STREAM_NOTIFICATION, false);
Log.i("STREAM_NOTIFICATION", "Set to False");
//alarm
amanager.setStreamMute(AudioManager.STREAM_ALARM, false);
Log.i("STREAM_ALARM", "Set to False");
//ringer
amanager.setStreamMute(AudioManager.STREAM_RING, false);
Log.i("STREAM_RING", "Set to False");
//media
amanager.setStreamMute(AudioManager.STREAM_MUSIC, false);
Log.i("STREAM_MUSIC", "Set to False");
}
Log.i("onToggleClicked", "ToggleClick Event Ended");
}
});
我发现输入通过观察这些问题:<一href="http://stackoverflow.com/questions/5848146/how-to-turn-off-all-sounds-and-vibration-via-android-api">How关闭所有声音和振动通过Android的API 而这其中:附加onClickListener来切换按钮
这篇关于如何关闭Android上所有的声音的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文