1
我该如何解决这个问题?我想我也必须保存我的静音功能,但不知道如何做到这一点。如何在android中静音?
我想问一下,如何根据“设置”活动中的复选框首选项将我的活动中的声音静音。 我的设置页面看起来像这样。
public class Settings extends PreferenceActivity {
CheckBoxPreference soundPref;
AudioManager mAudioManager = null;
final String SOUND = "soundPreference";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mAudioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);
setPreferenceScreen(createPreferenceHierarchy());
}
private PreferenceScreen createPreferenceHierarchy() {
// Root
PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this);
// Dialog based preferences
PreferenceCategory category1 = new PreferenceCategory(this);
root.addPreference(category1);
soundPref = new CheckBoxPreference(this);
soundPref.setTitle(R.string.sound);
soundPref.setKey(SOUND);
/**
* Adding all items to Preferences
*/
category1.addPreference(soundPref);
soundPref.setOnPreferenceClickListener(new ReflectiveAction(this, "evSound"));
return root;
}
public void evSound()
{
if(soundPref.isChecked())
{Toast.makeText(getBaseContext(),
R.string.sound_enable,
Toast.LENGTH_SHORT).show();
setSoundText();
if(mAudioManager!=null) {
mAudioManager.setStreamMute(AudioManager.STREAM_MUSIC, false);
}
}
else
{
Toast.makeText(getBaseContext(),
R.string.sound_disable,
Toast.LENGTH_SHORT).show();
setSoundText();
if(mAudioManager!=null) {
mAudioManager.setStreamMute(AudioManager.STREAM_MUSIC,true);
}
}
我在MediaPlayer实例的另一个活动中生成声音。 mp.start()。
问题是,无论何时我首先运行我的应用程序,我必须访问设置并单击复选框选择,然后再次取消选择,然后声音静音。但是当我运行应用程序并首先进入我产生声音的活动时,声音不是静音的。我必须先访问设置页面才能禁用声音。
通过上述编码我复选框状态做的是保存在我的首选项键,但我的应用程序不节能静音功能,这就是为什么我必须首先访问设置页面,使静音功能激活。
我该如何解决这个问题?我想我也必须保存我的静音功能,但不知道如何做到这一点。
嘿,我已经更新了我的问题。请检查并帮助我。为你的回应。 – Saad
在您的主要活动中使用上面的代码,用您的密钥替换'soundprefkey'。 – nhaarman
你的意思是说,我必须在我的主要活动中使用上面的代码来启用和禁用声音,我也考虑过这个,但我认为这不是一个好方法。有没有其他方法可以解决这个问题?我会尝试这段代码,但如果你有什么更好的想法,请让我知道这一点。 Thnkx – Saad