Проблема с OnAudioFocusChangeListener внутри OnCreate () - PullRequest
0 голосов
/ 09 марта 2019

Ниже код не работает внутри метода OnCreate(), но работает нормально при вставке кода вне области действия OnCreate(). Зачем?

AudioManager.OnAudioFocusChangeListener aflist = new AudioManager.OnAudioFocusChangeListener() {
        @Override
        public void onAudioFocusChange(int focusChange) {
            switch (focusChange) {

                case AudioManager.AUDIOFOCUS_LOSS:
                    md.stop();
                    releaseMediaPlayer();
                    Toast.makeText(getApplicationContext(), "PERM_LOSS", Toast.LENGTH_SHORT).show();
                    break;

                case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
                    // Temporary loss of audio focus - expect to get it back - you can keep your resources around
                    Toast.makeText(getApplicationContext(), "TEMP_LOSS", Toast.LENGTH_SHORT).show();
                    if (md.isPlaying()) {
                        md.pause();
                    }
                    break;

                case AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK:
                    //Reduce the volume for few seconds
                    Toast.makeText(getApplicationContext(), "DUCK", Toast.LENGTH_SHORT).show();
                    setVolumeControlStream(AudioManager.ADJUST_LOWER);
                    break;
            }
        }
    };
...