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