Exemple #1
0
        public void OnAudioFocusChange(AudioFocus focusChange)
        {
            switch (focusChange)
            {
            case AudioFocus.Gain:
                audioFocus = PlayerAudioState.Focused;
                break;

            case AudioFocus.Loss:
            case AudioFocus.GainTransient:
            case AudioFocus.LossTransientCanDuck:
                var canDuck = focusChange == AudioFocus.LossTransientCanDuck;
                audioFocus = canDuck ? PlayerAudioState.NoFocusCanDuck : PlayerAudioState.NoFocusNoDuck;
                if (State == PlaybackStateCompat.StatePlaying && !canDuck)
                {
                    playOnFocus = true;
                }
                break;

            default:
                Console.WriteLine($"Audio focus changed {focusChange}");
                break;
            }
            ConfigureMediaPlayerState();
        }
Exemple #2
0
 void GiveUpAudioFocus()
 {
     if (audioFocus != PlayerAudioState.Focused)
     {
         return;
     }
     if (audioManager.AbandonAudioFocus(this) == AudioFocusRequest.Granted)
     {
         audioFocus = PlayerAudioState.NoFocusNoDuck;
     }
 }
Exemple #3
0
        void TryToGetAudioFocus()
        {
            if (audioFocus == PlayerAudioState.Focused)
            {
                return;
            }
            var result = audioManager.RequestAudioFocus(this, Stream.Music, AudioFocus.Gain);

            if (result == AudioFocusRequest.Granted)
            {
                audioFocus = PlayerAudioState.Focused;
            }
        }