Как отключить звук в Android? - PullRequest
1 голос
/ 30 июня 2011

Как я могу решить эту проблему? Я думаю, что я должен сохранить свою функцию отключения звука, но не знаю, как это сделать.

Я хочу спросить, как я могу отключить звук в своей активности в соответствии с настройками флажка в настройках активности. Моя страница настроек выглядит следующим образом.

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 ().

проблема в том, что всякий раз, когда я сначала запускаю свое приложение, мне приходится заходить в настройки и нажимать на флажок, чтобы выбрать, и снова для отмены выбора, тогда звук отключается. но когда я запускаю приложение и сначала перехожу к своей деятельности, в которой я создаю звук, звук не отключается. Сначала я должен посетить страницу настроек, чтобы отключить звук.

При выполнении вышеописанного кодирования мое состояние checkBox сохраняется в моем ключе настроек, но мое приложение не сохраняет функцию отключения звука, поэтому мне нужно сначала посетить страницу настроек, чтобы активировать функцию отключения звука.

Как я могу решить эту проблему? Я думаю, что я должен сохранить свою функцию отключения звука, но не знаю, как это сделать.

1 Ответ

2 голосов
/ 30 июня 2011

Я предполагаю, что вы используете экземпляр класса PreferenceActivity.

В своей деятельности вам нужно установить состояние отключения звука.

if(PreferenceManager.getSharedPreferences(this).getBoolean("soundprefkey", false))
{
    /* mute */
} else {
    /* unmute */
}

Где «soundprefkey» - это ключ, определенный в ваших предпочтениях xml.

Если вы не используете класс PreferenceActivity, попробуйте это сделать. Вы можете взглянуть на это .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...