Deux applications peuvent-elles utiliser le microphone en même temps ?
Pour autant que je sache : Par défaut, de la même manière que deux applications différentes ne peuvent pas utiliser la caméra en même temps, le même principe s'applique au microphone aussi. Puisque les pilotes de ces hardwares ne répondent qu'à un seul appel d'un utilisateur à la fois. Bien sûr, vous pouvez créer une application qui reçoit l'entrée du microphone et qui agit ensuite comme un diffuseur pour partager l'entrée avec d'autres applications. Mais le microphone lui-même ne permet pas d'accueillir deux utilisateurs en même temps. Puisque l'application Téléphone est également un utilisateur, le microphone ne s'occupe que d'elle. Ceci étant dit, mes informations peuvent être périmées. Ou il peut y avoir des moyens de tricher dans ce cas. Utilisateur Micheal de cette question de Stack Overflow dit :
Je ne me souviens pas exactement d'où vient la limitation, mais sur l'une des plateformes avec lesquelles j'ai travaillé, nous avions une solution de contournement sous la forme d'un séparateur de flux. Cette classe a été écrite par le fournisseur de la plateforme (donc propriétaire), et faisait partie de libaudioflinger IIRC. Elle permettait gérer le flux d'entrée audio hw, et distribuer les données audio à tous les clients (applications) qui voulaient enregistrer de l'audio. Donc c'est possible si vous si vous avez la possibilité de construire votre propre ROM Android, mais ce n'est pas trivial.
Alors, c'est possible ? Oui. Mais ça me semble inutilement douloureux. Mais comme je l'ai dit, prenez mes paroles avec un grain de sel, car mes connaissances d'Android ne sont pas très à jour.
Une application peut-elle utiliser le microphone pour deux choses différentes ? Une application est constituée de différents composants. L'utilisateur du téléphone utilise des interfaces utilisateur (activités) pour lancer des processus qui se déroulent en arrière-plan (services) et tous les services ont leur propre rôle à jouer. Pourtant, ils appartiennent tous au même processus qui a un UID spécifique donné par l'Android. Une fois que l'UID reçoit les données de l'appareil photo, du microphone, etc. peut l'utiliser pour différents services en même temps. C'est à l'application de décider.