Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 停止来自其他应用程序的后台广播_Java_Android_Receiver - Fatal编程技术网

Java 停止来自其他应用程序的后台广播

Java 停止来自其他应用程序的后台广播,java,android,receiver,Java,Android,Receiver,我有一个启动流的应用程序,如果我在任何其他应用程序中打开音乐播放,那么它会并行播放这两首曲目。我怎样才能防止这种情况发生? 基本上,您无法阻止其他应用程序播放其音频。但是,当另一个应用程序开始播放音频时,您可能会收到警报,并做出相应的反应。这个答案的全部功劳都归他所有 为AudioManager添加了监听器,效果非常好。AudioManager=(AudioManager)getSystemService(音频服务);manager.requestAudioFocus(mAudioFocusCh

我有一个启动流的应用程序,如果我在任何其他应用程序中打开音乐播放,那么它会并行播放这两首曲目。我怎样才能防止这种情况发生?

基本上,您无法阻止其他应用程序播放其音频。但是,当另一个应用程序开始播放音频时,您可能会收到警报,并做出相应的反应。这个答案的全部功劳都归他所有


为AudioManager添加了监听器,效果非常好。AudioManager=(AudioManager)getSystemService(音频服务);manager.requestAudioFocus(mAudioFocusChangeListener、AudioManager.STREAM_MUSIC、AudioManager.AUDIOFOCUS_GAIN);非常感谢。
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;
        }
    }
};