2

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

例如

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

这在通过设备的扬声器收听媒体播放器时效果很好,但如果您插入耳机,而不是暂时降低音量,媒体播放器会在通知播放时静音。

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

4

0 回答 0