¿Pueden dos aplicaciones usar el micrófono al mismo tiempo?
Hasta donde yo 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 controladores de estos equipos responden a una sola llamada de un usuario a la vez. Por supuesto, puedes hacer una aplicación que reciba 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 proporciona dos usuarios al mismo tiempo. Dado que la aplicación de teléfono también es un usuario, el micrófono sólo lo provee. Dicho esto, mi información puede estar desactualizada. O puede haber formas de hacer trampa en este caso. Usuario Michael de esta cuestión del desbordamiento de la pila dice:
No recuerdo exactamente de dónde viene la limitación, pero en una de las las plataformas con las que he trabajado tenían una solución alternativa en forma de divisor de corriente. Esta clase fue escrita por el proveedor de la plataforma (así que era de propiedad), y era parte de libaudioflinger IIRC. Se administrar el flujo de entrada de audio hw, y entregar los datos de audio a todos clientes (aplicaciones) que querían grabar audio. Así que puede hacerse si tienen la capacidad de construir su propia ROM de Androids, pero no es trivial.
Entonces, ¿es posible? Sí. Pero me parece innecesariamente doloroso. Aún así, como dije, tome mis palabras como un grano de sal, ya que mis conocimientos sobre los Androids no están muy actualizados.
¿Puede una aplicación usar el micrófono para dos cosas diferentes? Una aplicación está hecha de diferentes componentes. El usuario del teléfono utiliza las interfaces de usuario (actividades) para iniciar procesos que ocurren en segundo plano (servicios) y todos los servicios tienen su propia cosa que hacer. Aún así, todos pertenecen al mismo proceso que tiene un UID específico dado por el Android. Una vez que el UID dado obtiene la información de entrada de la cámara, el micrófono, etc puede lo utilizan para diferentes servicios al mismo tiempo. Eso lo decidirá la aplicación.