如何暂停特定应用程序的Media Player?

时间:2019-12-13 09:32:09

标签: android android-audiomanager

我需要暂停特定应用程序的播放器-例如Spotify。但是如果有其他玩家在玩,我想继续玩,只暂停Spotify。 我有什么功能吗?

我最终有可能暂停所有应用程序,但不暂停特定应用程序。

或者其他帮助是,如果我可以确定当前正在播放Media Player的应用程序是Spotify,那么我可以暂停所有应用程序,但是我知道我只会停止Spotify。

欢呼

1 个答案:

答案 0 :(得分:0)

没有办法广泛停止特定的应用播放器音频 如果他们实现了直接由硬件实现的音乐API 然后,如果您在应用中播放音乐,则它会自动停止 使用AudioManager。如果其他应用程序播放音频,您还可以获取回调。

 private OnAudioFocusChangeListener focusChangeListener =
     new OnAudioFocusChangeListener() {
         public void onAudioFocusChange(int focusChange) {
                             AudioManager am =(AudioManager)getSystemService(Context.AUDIO_SERVICE);
                    switch (focusChange) {

                           case (AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) :
                           // Lower the volume while ducking.
                           mediaPlayer.setVolume(0.2f, 0.2f);
                           break;
                           case (AudioManager.AUDIOFOCUS_LOSS_TRANSIENT) :
                           pause();
                           break;

                           case (AudioManager.AUDIOFOCUS_LOSS) :
                           stop();
                           ComponentName component =new ComponentName(AudioPlayerActivity.this,MediaControlReceiver.class);
                           am.unregisterMediaButtonEventReceiver(component);
                           break;

                           case (AudioManager.AUDIOFOCUS_GAIN) :
                           // Return the volume to normal and resume if paused.
                           mediaPlayer.setVolume(1f, 1f);
                           mediaPlayer.start();
                           break;
                           default: break;
        }
    }
};