0

I am developing an audio player, it can play the audio files in background. My problem is that I need to pause the audio player when video recorder or video player is starts.

Are there any methods to handle this task? For example I have PhoneStateListener to handle the calls. When I received a call or wnat to make a call we can pause the player by using call state. I want the same scenario for the video recorder or video player aswell. When video/recording starts I need to pause my audio player.

double-beep
  • 5,031
  • 17
  • 33
  • 41

1 Answers1

3

You need to detect if there are other apps request audio focus and pause your audio player. AudioManager.OnAudioFocusChangeListener should help. Here is some sample code

am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
afChangeListener = new OnAudioFocusChangeListener() {
        public void onAudioFocusChange(int focusChange) {
            if (focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT){
                // Pause playback
            } else if (focusChange == AudioManager.AUDIOFOCUS_GAIN) {
                // Resume playback 
            } else if (focusChange == AudioManager.AUDIOFOCUS_LOSS) {
                abandonAudioFocus();
            }
        }
    };

I did not try this code myself, let me know if it helps.

Ethan
  • 1,616
  • 14
  • 8