오디오 포커스 개선사항

오디오 포커스를 사용하는 미디어 앱이나 게임 앱은 포커스가 손실된 후 오디오를 재생해서는 안 됩니다. Android 12부터 프레임워크에서는 이 동작을 적용합니다. 다른 앱이 포커스를 보유하여 재생되는 동안 앱이 오디오 포커스를 요청하면 프레임워크는 재생 중인 앱을 강제로 페이드 아웃합니다. 페이드 아웃을 추가하면 한 앱에서 다른 앱으로 이동할 때 더 원활하게 전환됩니다.

이 페이드 아웃 동작은 다음 조건이 충족될 때 발생합니다.

오디오 시스템은 첫 번째 앱을 페이드 아웃합니다. 페이드 아웃이 끝날 때 시스템은 첫 번째 앱에 포커스 손실을 알립니다. 플레이어는 앱이 오디오 포커스를 다시 요청할 때까지 음소거 상태로 유지됩니다.

기존 오디오 포커스 동작

오디오 포커스 전환과 관련된 다음과 같은 기타 사례도 알아야 합니다.

자동 볼륨 낮추기

자동 볼륨 낮추기는 Android 8에서 도입되었습니다. 이 기능은 한 앱의 오디오 수준을 일시적으로 줄여 다른 앱을 명확하게 들을 수 있도록 하는 것입니다.

프레임워크에서 볼륨 낮추기를 구현하도록 하므로 개발자는 앱에서 볼륨 낮추기를 구현하지 않아도 됩니다.

자동 볼륨 낮추기는 오디오 알림이 재생 중인 앱에서 포커스를 가져올 때도 발생합니다. 알림 재생의 시작은 볼륨 낮추기 램프의 끝과 동기화됩니다.

자동 볼륨 낮추기는 다음 조건이 충족될 때 발생합니다.

  • 현재 재생 중인 첫 번째 앱은 다음과 같아야 합니다.

  • 두 번째 앱은 다음을 사용하여 오디오 포커스를 요청합니다. [AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK](/reference/android/media/AudioManager#AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK

오디오 시스템은 두 번째 앱에 포커스가 있는 동안 첫 번째 앱의 모든 활성 플레이어의 볼륨을 낮춥니다. 두 번째 앱이 포커스를 포기하면 볼륨을 원상태로 돌립니다. 첫 번째 앱은 포커스가 손실될 때 알림을 받지 않으므로 아무 작업도 할 필요가 없습니다.

자동 볼륨 낮추기는 음성 콘텐츠를 들을 때는 실행되지 않습니다. 사용자가 프로그램 일부를 놓칠 수 있기 때문입니다. 예를 들어 운전 경로를 제공하는 동안 재생 볼륨을 낮추는 경우입니다.

수신 전화 음소거

일부 앱은 전화 통화 중에 올바르게 동작하지 않고 계속 재생됩니다. 그러면 사용자가 통화를 들으려고 문제의 앱을 찾아 음소거하거나 종료해야 합니다. 이 기능을 사용하면 수신 전화가 있을 때 어떤 앱도 계속 재생되지 않습니다. 앱이 다음 조건을 충족하면 호출됩니다.

  • AudioAttributes.USAGE_MEDIAAudioAttributes.USAGE_GAME 사용이 있습니다.
  • 오디오 포커스(모든 포커스 게인)를 성공적으로 요청했고 오디오를 재생 중입니다.

통화 중에 앱이 계속 재생되면 통화가 끝날 때까지 재생이 음소거됩니다. 그러나 앱이 통화 중에 재생되기 시작하면 플레이어가 음소거되지 않습니다. 사용자의 의도적인 작업으로 간주하기 때문입니다.