Воспроизведение / приостановка других музыкальных приложений, когда мое приложение воспроизводит музыку - PullRequest
0 голосов
/ 22 июня 2019

Я пытаюсь приостановить воспроизведение музыки, когда пользователь воспроизводит другую музыку из другого приложения, приведенный ниже код не работает, мое приложение продолжает воспроизводить музыку, хотя другое приложение также воспроизводит ее. Может ли кто-нибудь помочь мне решить эту проблему?

    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();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...