Практический бой Android Audio — анализ журнала аудиофокуса (двадцать четыре)

1. Анализ фокуса

1. Фокус на применении

Расположение исходного кода: frameworks/base/services/core/java/com/android/server/audio/MediaFocusControl.java

        При подаче заявки на фокус вызывается функция requestAudioFocus() в MediaFocusControl и печатается следующий журнал:

I MediaFocusControl: requestAudioFocus() from uid/pid …… callingPack=com.app.voiceadapter req=2 flags=0x0 sdk=29 usage=1

uid/pid: используется для идентификации информации приложения.

clientId: идентификатор клиента, запрашивающего фокус, обычно имя пакета приложения.

CallingPack=com.app.voiceadapter: имя пакета приложения, которое вызывает метод фокусировки звука.

req: Заявленный тип фокуса.

  • AUDIOFOCUS_NONE = 0: фокус не получен.
  • AUDIOFOCUS_GAIN = 1: удерживать фокус в течение длительного времени.
  • AUDIOFOCUS_GAIN_TRANSIENT = 2: Временный фокус. Например, телефонные звонки и т. д.
  • AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK = 3: Временный фокус. Позволяет выполнять ремиксы, например, навигацию и т. д.

Guess you like

Origin blog.csdn.net/c19344881x/article/details/134649302