首页 > 解决方案 > 当我的应用程序正在播放声音时,如何停止其他应用程序(收音机应用程序、播放器等)中的音频?

问题描述

我的应用程序包含音频。当其他一些应用程序(收音机、音乐……)在后台模式下播放时,我的应用程序的声音正在与该应用程序一起(一起)播放。当我的应用程序正在播放时,是否有能力停止该音乐应用程序?或者也许静音它或其他。

标签: android

解决方案


我以前遇到过这个,这就是解决方案

AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

// Request audio focus for playback
int result = am.requestAudioFocus(focusChangeListener,
// Use the music stream.
AudioManager.STREAM_MUSIC,
// Request permanent focus.
AudioManager.AUDIOFOCUS_GAIN);


if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
// other app had stopped playing song now , so u can do u stuff now .
}


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;
}}};

推荐阅读