¿Pueden dos aplicaciones usar el micrófono al mismo tiempo?
Por lo que sé: Por defecto, de la misma manera que dos aplicaciones diferentes no pueden usar la cámara al mismo tiempo, el mismo principio se aplica al micrófono también. Ya que los drivers de estos dispositivos responden solo a una llamada de un usuario a la vez. Por supuesto, puedes hacer una aplicación que obtenga la entrada del micrófono y luego actúe como un emisor para compartir la entrada con otras aplicaciones. Pero el micrófono en sí mismo no provee para dos usuarios al mismo tiempo. Dado que la aplicación de Teléfono también es un usuario, el micrófono provee solo para él. Dicho esto, mi información puede estar desactualizada. O puede haber maneras de engañar en este caso. El usuario Micheal de esta pregunta de Stack Overflow dice:
No recuerdo exactamente de dónde viene la limitación, pero en una de las plataformas con las que he trabajado teníamos un método en forma de un separador de streams. Esta clase fue escrita por el proveedor de la plataforma (por lo que era propietaria) y formaba parte de libaudioflinger si mal no recuerdo. Administraba el flujo de entrada de audio del hardware y distribuía los datos de audio a todos los clientes (aplicaciones) que querían grabar audio. Por lo que se puede hacer si tienes la capacidad de construir tu propio ROM de Android, pero no es trivial.
Entonces, ¿es posible? Sí. Pero me parece innecesariamente complicado. Aún así, como dije, toma mis palabras con precaución, ya que mi conocimiento sobre Android no está muy actualizado.
¿Puede una aplicación usar el micrófono para dos cosas diferentes? Una aplicación está compuesta por diferentes componentes. El usuario del teléfono utiliza interfaces de usuario (actividades) para iniciar procesos que ocurren en segundo plano (servicios) y todos los servicios tienen su propia función que cumplir. Sin embargo, todos pertenecen al mismo proceso que tiene un UID específico dado por Android. Una vez que el UID asignado recibe la información de entrada de la cámara, del micrófono, etc., puede usarla para diferentes servicios al mismo tiempo. Eso depende de la aplicación decidirlo.