0

I am playing music player from assets in my application. When other music player app is playing my app(music player) has stopped. If my app(music player is resumed) the other music player is still continuing playing song. How to know other music player app is stopped from service or other callbacks?

import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.os.IBinder;
import android.support.annotation.IntDef;
import android.support.annotation.Nullable;
import android.util.Log;

import com.myapp.music.MusicMediaController;

public class MyMusicService extends Service implements      AudioManager.OnAudioFocusChangeListener {

private AudioManager mAudioManager;

@Override
public void onCreate() {
    super.onCreate();

    mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    mAudioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    return START_STICKY;
}

@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}

@Override
public void onAudioFocusChange(int focusChange) {

    switch (focusChange) {
        case AudioManager.AUDIOFOCUS_GAIN:
            MusicMediaController.getInstance().resumeAudio();
            break;
        case AudioManager.AUDIOFOCUS_LOSS:
        case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
        case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
            MusicMediaController.getInstance().pauseAudio();
            mAudioManager.abandonAudioFocus(this);
            break;
    }
}
}
Krishna
  • 1,556
  • 13
  • 21

1 Answers1

0

AudioManager has a method to know if the music is active:

val audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager
  if (audioManager.isMusicActive && isEnabled) {
   ...
  }
alorma
  • 924
  • 8
  • 10