¿Puede una aplicación usar el micrófono para dos tareas diferentes al mismo tiempo?

Actualmente estoy explorando la aplicación PortSIP (el enlace está aquí ) para hacer llamadas. Quiero poder grabar lo que hablo. Puedo grabar con éxito usando el micrófono, cuando no hay una llamada en curso. Pero una vez que se inicializa la llamada, el receptor no puede escuchar mi voz.

¿¿Hay alguna manera de hacer funcionar esto??

Respuestas (1)

¿Pueden dos aplicaciones usar el micrófono al mismo tiempo?

Que yo sepa: de forma predeterminada, de la misma manera que dos aplicaciones diferentes no pueden usar la cámara al mismo tiempo, el mismo principio también se aplica al micrófono. Dado que los controladores de estos hardware responden a una sola llamada de un usuario a la vez. Por supuesto, puede crear 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 permite dos usuarios al mismo tiempo. Dado que la aplicación Teléfono también es un usuario, el micrófono solo lo proporciona. Dicho esto, mi información puede estar desactualizada. O puede haber formas de hacer trampa en este caso. El usuario Micheal de esta pregunta de desbordamiento de pila dice:

No recuerdo exactamente de dónde viene la limitación, pero en una de las plataformas con las que he trabajado teníamos una solución en forma de un divisor de flujo. Esta clase fue escrita por el proveedor de la plataforma (por lo que era propietaria) y formaba parte de libaudioflinger IIRC. Administraría el flujo de entrada de audio hw y entregaría datos de audio a todos los clientes (aplicaciones) que quisieran grabar audio. Por lo tanto, se puede hacer si tiene la capacidad de crear su propia ROM de Android, 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 mi conocimiento de Android no está muy actualizado.

¿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 interfaces de usuario (actividades) para iniciar procesos que ocurren en segundo plano (servicios) y todos los servicios tienen su propio trabajo. Sin embargo, todos pertenecen al mismo proceso que tiene un UID específico proporcionado por Android. Una vez que el UID dado obtiene la información de entrada de la cámara, el micrófono, etc., puede usarlo para diferentes servicios al mismo tiempo. Eso depende de la aplicación para decidir.