Отключить звук только для одного приложения - PullRequest
1 голос
/ 30 августа 2011

Можно ли отключить все звуки только одного приложения и сохранить выбор до следующего запуска приложения?

Итак, у меня есть кнопка ToggleButton на StartActivity и при нажатии этой кнопки все звукиприложения должны быть деактивированы, но звуки других приложений все еще должны работать.

Я попробовал это с настройками, используя класс SharedPreferences, файл xml и так далее, как в моей книге.Но, ознакомившись с введением, я понял, что Предпочтения - это просто способ сохранить данные на постоянной основе. Так что мне пришлось бы, например, включать в каждую кнопку со звуком предложение if, которое проверяет, является ли то или иное сохраненное предпочтение включения / выключения звука истинным / ложным, а затем активирует / деактивирует звук?

Я думал, что это может быть проще?

Ответы [ 3 ]

3 голосов
/ 30 августа 2011

На самом деле, если вы хотите отключить звук в вашем приложении - вы можете просто не воспроизводить его.Вы можете сохранить флаги для каждого звука, который хотите воспроизвести, в SharedPreferences и проверять его каждый раз, когда хотите воспроизвести звук.Это действительно просто!

1 голос
/ 30 августа 2011

Вы, вероятно, можете написать свой собственный класс MyButton, который расширяет Button и переопределяет onClick.

0 голосов
/ 21 апреля 2014
  1. Объявление строки

    String strSound;

  2. введите эту строку в настройках общих параметров

    strSound = prefs.getString ("sound", "on");

  3. введите эту строку в вашем onActivityResult

    strSound = prefs.getString("sound", "on");

  4. поместите эти строки в ваш медиапроигрыватель, который используется для подачи звуков для вашего приложения.

    private void playSound()
    {
    mp = MediaPlayer.create(MyActivity.this, R.raw."your_soundfile_name");
    
    mp.setOnCompletionListener(new OnCompletionListener() 
    {
        @Override
        public void onCompletion(MediaPlayer mp) 
        {
            mp.release();
        }
    }); 
    if(strSound.equals("on"))
    mp.start();
    
  5. теперь добавьте эти строки в действие кнопки переключения

    your_togglebutton_id.setOnCheckedChangeListener(new     CompoundButton.OnCheckedChangeListener()
    {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            prefs = getSharedPreferences(prefName, MODE_PRIVATE);
            SharedPreferences.Editor editor = prefs.edit();
            if (isChecked)
            {
                editor.putString("sound", "on");
                editor.commit();
            }
            else
            {
                editor.putString("sound", "off");
                editor.commit();
            }
        }
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...