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