Как отключить звуковой пул?

Я хочу разрешить пользователю отключать приложение с помощью кнопки, и кто-то посоветовал мне «прикрепить логическое значение к вашему MediaPlayerPool, для которого вы установили значение false при нажатии кнопки отключения звука». Затем в вашем методе playSound ничего не делайте, если значение равно false, но я не знаю, как это сделать. Может ли кто-нибудь опубликовать пример кода, пожалуйста. Код пула:

public class MediaPlayerPool {

    private static MediaPlayerPool instance = null;
    private Context context;
    private List<MediaPlayer> pool;

    public static MediaPlayerPool getInstance(Context context) {
        if(instance == null) {
            instance = new MediaPlayerPool(context);
        }
        return instance;
    }

    private MediaPlayerPool(Context context) {
        this.context = context;
        pool = new ArrayList<>();
    }

    public void playSound(int soundId) {
        MediaPlayer mediaPlayer = MediaPlayer.create(context, soundId);

        mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mediaPlayer) {
                mediaPlayer.release();

                pool.remove(mediaPlayer);
                mediaPlayer = null;

            }
        });

        pool.add(mediaPlayer);
        mediaPlayer.start();
    }

}

person Manos Rasidakis    schedule 26.02.2018    source источник


Ответы (1)


Добавьте переменную в свой класс MediaPlayerPool, назовем ее mute

public boolean mute = false;

Имейте кнопку отключения/включения звука и ее метод onClick (будет переключаться):

MediaPlayerPool.getInstance().mute = !MediaPlayerPool.getInstance().mute

и ваш метод playSound становится

public void playSound(int soundId) {
    if(!mute) {
        // stick your current code here
    }
}
person Bentaye    schedule 26.02.2018