使用耳机处理“躲避”audioFocusChange

时间:2012-07-16 13:13:05

标签: android notifications media-player

当Android收到短信时,通知会发送AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK焦点变更。我通过将媒体播放器的音量减少50%来处理这个问题。

E.g。

    public void onAudioFocusChange(int focusChange) {
      switch (focusChange) {
        // E.g. SMS
        case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK :
          playerDuck(true);
          break;
        case AudioManager.AUDIOFOCUS_GAIN :
        case AudioManager.AUDIOFOCUS_GAIN_TRANSIENT :
          playerDuck(false);
          playerResume();
          break;
      }
  }

  public synchronized void playerDuck(boolean duck) {
    if (mediaPlayer != null) {
      // Reduce the volume by half when ducking - otherwise play at full volume.
      mediaPlayer.setVolume(duck ? 0.5f : 1.0f, duck ? 0.5f : 1.0f);
    }
  }

通过设备的扬声器收听媒体播放器时,此功能正常,但如果您插入耳机,则暂时降低音量,播放通知时媒体播放器会静音。

插入耳机时,如何以不同方式处理音频焦点的变化?

0 个答案:

没有答案