如何确定其他应用程序失去音频焦点,以便我可以启动我的播放器

时间:2017-06-09 14:13:05

标签: android android-mediaplayer android-audiomanager

我在网上看到很多Android播放器,一旦开始播放其他应用程序,就会失去焦点并停止播放。

另一方面,一旦获得专注的应用程序停止播放,焦点松动的应用程序将再次开始播放。

任何人都可以建议我在这里找不到什么来实现我的应用程序中的相同功能?我希望尽快其他应用程序停止播放我的应用程序应该GAIN焦点并开始播放..

private void setupAudioManager() {
        audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
        audioManager.requestAudioFocus(audioFocusListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
        audioFocusListener = new OnAudioFocusChangeListener() {
            @Override
            public void onAudioFocusChange(int focusChange) {
                switch (focusChange) {
                    case AUDIOFOCUS_GAIN:
                        if (mediaPlayer == null) setupMediaPlayer();
                        else if (!mediaPlayer.isPlaying()) {
                            play();
                        }
                        mediaPlayer.setVolume(MEDIA_PLAYER_LEFT_VOLUME, MEDIA_PLAYER_RIGHT_VOLUME);
                        break;

                    case AUDIOFOCUS_LOSS:
                        if (isPlaying()) {
                            Intent intent = new Intent("HomeActivity");
                            intent.putExtra("playerState", "pause");
                            LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(intent);
                        }

                        break;

                    case AUDIOFOCUS_LOSS_TRANSIENT:
                        if (isPlaying()) pause();
                        break;

                    case AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
                        if (isPlaying()) mediaPlayer.setVolume(MEDIA_PLAYER_LEFT_VOLUME_LOW,
                                MEDIA_PLAYER_RIGHT_VOLUME_LOW);
                        break;

                }
            }
        };
    }

寻找你的建议。

0 个答案:

没有答案