Я пытаюсь приостановить воспроизведение музыки, когда пользователь воспроизводит другую музыку из другого приложения, приведенный ниже код не работает, мое приложение продолжает воспроизводить музыку, хотя другое приложение также воспроизводит ее. Может ли кто-нибудь помочь мне решить эту проблему?
public class RadioService extends Service implements
Player.EventListener,
AudioManager.OnAudioFocusChangeListener {
@Override
public void onCreate() {
super.onCreate();
audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
notificationManager = new MediaNotificationManager(this);
wifiLock = ((WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE))
.createWifiLock(WifiManager.WIFI_MODE_FULL, "mcScPAmpLock");
DefaultTrackSelector trackSelector = new DefaultTrackSelector();
exoPlayer = ExoPlayerFactory.newSimpleInstance(getApplicationContext(), trackSelector);
exoPlayer.addListener(this);
registerReceiver(becomingNoisyReceiver, new IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY));
status = PlaybackStatus.IDLE;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
String action = intent.getAction();
if (TextUtils.isEmpty(action)) return START_NOT_STICKY;
int result = audioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
if (result != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
stop();
exoPlayer.setPlayWhenReady(false);
Toast.makeText(this, "MUSIC SHOULD STOPPED", Toast.LENGTH_SHORT).show();
return START_NOT_STICKY;
}
return START_NOT_STICKY;
}
public void pause() {
exoPlayer.setPlayWhenReady(false);
audioManager.abandonAudioFocus(this);
wifiLockRelease();
}
public void pauseToPlay() {
if (isPlaying())
exoPlayer.setPlayWhenReady(false);
}
public void stop() {
exoPlayer.stop();
audioManager.abandonAudioFocus(this);
wifiLockRelease();
}