从另一个应用程序广播背景广播

时间:2016-02-10 15:46:19

标签: java android receiver

我有一个启动流的应用程序,如果我在任何其他应用程序中打开音乐播放,那么它会并行播放两个轨道。我该如何防止这种情况?

1 个答案:

答案 0 :(得分:0)

Take a look at this question.

基本上,您无法阻止其他应用播放音频。但是,您可以在另一个应用程序开始播放音频时收到警报,并做出相应的反应此答案的所有功劳都归Pranav Jadav所示。

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