Android Q permitirá que las aplicaciones graben audio de otras aplicaciones y controlen la temperatura del dispositivo

Android Q agrega una nueva API para grabar la salida de audio interna de otra aplicación y también para monitorear la temperatura del dispositivo.

Google da y Google quita. Cada nueva versión de Android presenta muchas API nuevas que mejoran la funcionalidad de las aplicaciones existentes o abren nuevas categorías de aplicaciones. Por otro lado, Google también elimina el acceso o restringe las capacidades de las API existentes para mejorar la seguridad de la plataforma Android. La versión de Android Q no es diferente y ya hemos hablado mucho sobre sus cambios en el almacenamiento compartido, el acceso al portapapeles, las notificaciones y otras API. en este año En la conferencia de desarrolladores Google I/O, Google anunció nuevas API en Android Q que son especialmente interesantes para usuarios y desarrolladores de juegos móviles: AudioPlaybackCapture y API térmicas.

Grabar el audio de otras aplicaciones con AudioPlaybackCapture en Android Q

Los juegos móviles son una industria enorme y no hay signos de desaceleración en el corto plazo, especialmente en mercados como Estados Unidos, China e India. Dado que cada vez más personas pasan tiempo en sus teléfonos inteligentes para jugar y usar las redes sociales, no sorprende que quieran compartir sus experiencias de juego en línea.

Android ha admitido la toma de capturas de pantalla desde básicamente el principio, pero la captura de videos de la pantalla solo ha sido admitida desde Android 5.0 Lollipop con la introducción de API de proyección de medios. Lamentablemente, esta API no permite que aplicaciones de terceros graben la salida de audio interna en otras aplicaciones. obligar a los grabadores de pantalla de terceros a grabar la salida de audio externa desde el micrófono del dispositivo (s). OEM como Samsung y Huawei proporcionar aplicaciones del sistema para grabar la salida de audio interna durante una grabación de pantalla, pero la única manera para que los propietarios de otros dispositivos graben correctamente la salida de vídeo y audio de sus dispositivos es comprar a accesorio de terceros. Afortunadamente, Google finalmente está introduciendo una forma en Android Q para que aplicaciones de terceros graben el audio de otras aplicaciones.

Google describe la API AudioPlaybackCapture como análoga a la captura de pantalla, pero para grabación de audio. Aunque la única aplicación hasta ahora que utiliza la API es la de Google. Subtítulo en vivo, una herramienta de accesibilidad que agrega subtítulos a cualquier video que se reproduzca en el dispositivo, la API La documentación indica que su propósito principal es permitir que las aplicaciones de transmisión capturen el audio que se está transmitiendo. jugado por juegos. Piense en jugadores móviles que transmiten sus sesiones a servicios como Twitch o YouTube. La API está diseñada para no afectar la latencia de audio de la aplicación cuyo audio se captura, lo que la hace perfecta para grabar juegos para que el audio y el video no se desincronicen.

A diferencia de los primeros días de Android, el enfoque de Google hacia las nuevas API es más cauteloso. AudioPlaybackCapture solo se puede utilizar si tanto la aplicación cuyo audio se captura como la aplicación que realiza la captura cumplen requisitos específicos. Aquí hay un resumen de esos requisitos:

  • Para que una aplicación de terceros capture el audio de una aplicación, se deben cumplir los siguientes requisitos:
    • La aplicación debe tener permitidoAudioPlaybackCapture configurado en verdadero o sin configurar en su Manifiesto. (El valor predeterminado es verdadero para aplicaciones orientadas a Android Q, pero se puede configurar manualmente para aplicaciones orientadas a Android Pie).
    • La aplicación que produce audio debe tener un uso de audio del tipo USAGE_MEDIA, USAGE_GAME o USAGE_UNKNOWN.
    • La política de captura de audio (setAllowedCapturePolicy) debe establecerse en ALLOW_CAPTURE_BY_ALL. Esta política se puede establecer en tiempo de ejecución, pero se debe reiniciar la reproducción para que el cambio de política surta efecto. Si se configura ALLOW_CAPTURE_BY_SYSTEM, solo las aplicaciones del sistema pueden grabar el audio (pero están restringidas en que no pueden guardar el audio, pasarlo a una aplicación de terceros o grabar a > 16 kHz mono de 16 bits calidad.)
  • Para que una aplicación grabe audio de otra aplicación, se deben cumplir los siguientes requisitos:
    • La aplicación debe mostrar el mensaje MediaProjectionManager.createScreenCaptureIntent y el usuario debe aceptarlo.
      El cuadro de diálogo de confirmación que los usuarios ven cuando una aplicación intenta capturar la pantalla usando la API MediaProjection.
    • La aplicación debe contener el GRABAR AUDIO permiso.
    • La aplicación debe tener el mismo perfil de usuario que la aplicación cuyo audio se grabará.

Me imagino que la mayoría de los juegos permitirán que las aplicaciones capturen su audio utilizando esta nueva API, pero es posible que los juegos tarden algún tiempo en actualizarse para admitirla. Por otro lado, no espere que ninguna aplicación de transmisión de música o vídeo admita esta API para terceros debido a problemas de licencia. Sin embargo, las limitaciones que Google ha impuesto si una aplicación establece su política de captura de audio en ALLOW_CAPTURE_BY_SYSTEM significa que Los desarrolladores de aplicaciones de transmisión de música y vídeo deberían aceptar permitir la captura de audio por parte del sistema para mejorar la accesibilidad.

Para leer más sobre la API AudioPlaybackCapture en Android Q, consulte esta página.

Monitoreo de limitación con API térmica en Android Q

La limitación térmica es gestionada casi en su totalidad por el sistema sin ninguna entrada o incluso notificación a las aplicaciones más afectadas por la limitación. Si los recursos del dispositivo están demasiado agotados, la mayoría de los dispositivos reducirán las velocidades de la CPU y la GPU en detrimento del rendimiento del juego. No hay nada que usted, como desarrollador de juegos, pueda hacer al respecto excepto advertir al usuario antes de cambiar cualquier configuración sobre el impacto potencial que sus cambios pueden tener en el rendimiento.

Sin embargo, con la nueva API térmica en Android Q, las aplicaciones pueden recibir devoluciones de llamada para diferentes etapas de limitación del rendimiento, lo que brinda Los desarrolladores tienen la oportunidad de ayudar a reducir la tensión en el dispositivo al reducir las actividades que requieren una cantidad significativa de CPU, GPU o módem. uso. Por ejemplo, un juego podría reducir dinámicamente la resolución hasta que el dispositivo ya no esté acelerando la GPU, o una aplicación de Mapas podría desactivar funciones mejoradas como navegación de realidad aumentada para reducir la carga en la CPU.

Para usar esta nueva API, las aplicaciones registran un oyente en PowerManager (addThermalStatusListener) y el sistema envía a la aplicación uno de los siguientes códigos de estado térmico:

  • THERMAL_STATUS_NONE: "No bajo limitación."
  • THERMAL_STATUS_LIGHT: "Ligera limitación donde la UX no se ve afectada".
  • THERMAL_STATUS_MODERATE: "Limitación moderada donde la UX no se ve muy afectada."
  • THERMAL_STATUS_SEVERE: "Limitación severa que afecta en gran medida la UX".
  • THERMAL_STATUS_CRITICAL: "La plataforma ha hecho todo lo posible para reducir la energía".
  • THERMAL_STATUS_EMERGENCY: "Los componentes clave de la plataforma se están apagando debido a condiciones térmicas. Las funcionalidades del dispositivo serán limitadas".
  • THERMAL_STATUS_SHUTDOWN: "Necesita apagarse inmediatamente.

La compatibilidad con Thermal API obviamente requiere Android Q, pero otro requisito es la adición de un nuevo HAL. Google dice que los dispositivos Pixel con Android Q (es decir, Pixel, Pixel XL, Pixel 2, Pixel 2 XL, Pixel 3, Pixel 3 XL, Píxel 3a, y Píxel 3a XL) admiten la API térmica, pero Google está trabajando para agregar compatibilidad con otros dispositivos.

Leer más sobre el API térmica aquí.