
Одним из явных приоритетов Google в Android Q является защита конфиденциальности и улучшение того, как ОС обрабатывает разрешения. В сегодняшнем посте для разработчиков Google объясняет, как Android Q обрабатывает захват аудио.
Новый API в Android Q, AudioPlaybackCapture API, немного упрощает приложениям возможность захватывать аудио, воспроизводимое другими приложениями и системой в целом. Google использует функцию Live Caption как один из примеров использования этого API, поскольку он прослушивает аудиоконтент для его перевода в реальном времени. Еще одним сценарием использования, который видит Google, являются приложения, имеющие доступ к игровому аудио для записей или стриминга.
При использовании этого API Android Q запрашивает у пользователя разрешение перед захватом аудио. При первом запросе этого разрешения появляется уведомление, а перед каждой сессией появляется второе уведомление, предупреждающее пользователя о том, что это позволяет используемому приложению видеть и записывать потенциально конфиденциальную информацию. После нажатия «Начать запись» для записи аудио в Android Q значок трансляции появляется в строке состояния с красной заливкой, указывающей на запись.
Разработчики приложений, ориентированных на API версии 28 и ниже, должны явно разрешить другим сторонним приложениям записывать свой звук, но API версии 29 имеет некоторые исключения. Для приложений с типами использования «медиа» или «игры» другие приложения могут записывать это по умолчанию. Системные приложения/компоненты, однако, могут записывать по умолчанию для типов использования «медиа» или «игры» на любом уровне API. Разработчики также имеют возможность отключить эту функцию, о чем Google более подробно рассказывает в своем посте.
Android Q содержит новый API AudioPlaybackCapture. Этот API предоставляет приложениям возможность копировать звук, воспроизводимый другими приложениями. Эта функция является аналогом захвата экрана, но для аудио. Основное назначение — для потоковых приложений, которые хотят записывать звук, воспроизводимый играми. Обратите внимание, что API захвата не влияет на задержку приложения, чей звук записывается.