Android, Ligue para o fluxo de áudio via WLAN
-
21-09-2019 - |
Pergunta
Estou planejando desenvolver meu aplicativo VoIP específico para Android.
Aqui está o cenário: quando ocorre um telefonema, quero ouvir a pessoa que está chamando meus alto -falantes locais de PC e quero falar com ele através do meu próprio microfone / fone de ouvido para PC. Então, preciso enviar o fluxo de áudio de mim e da pessoa com quem estou conversando pela rede WLAN.
Algo assim:
...
onCallStateChanged(int state, String phoneNumber){
while(state == PhoneListener.CALL_STATE_OFFHOOK){ //while phone call is happening
//send incoming speech via wlan to pc
//receive audiostream from pc microphone and direct it to the phone call
}
}
...
Isso é possível com a atual API Android? (Na verdade, deve ser, já que os aplicativos VoIP estão disponíveis no mercado) Fiz algumas pesquisas na API Android e tudo o que encontrei foi o Audiomanager que tem constante
public static final int STREAM_VOICE_CALL; //The audio stream for phone calls
Mas não sei como usá -lo como ele deve me dar acesso aos áudios reais que posso enviar via rede. Como posso fazer isso?
A conexão seria realizada pelos soquetes TCP.
Solução
Aqui está o cenário: quando ocorre um telefonema, quero ouvir a pessoa que está chamando meus alto -falantes locais de PC e quero falar com ele através do meu próprio microfone / fone de ouvido para PC. Então, preciso enviar o fluxo de áudio de mim e da pessoa com quem estou conversando pela rede WLAN.
Qual é o sentido de ter Android na mistura? Se você possui um PC local e deseja usar o PC local para entrada/saída de áudio, use um aplicativo VoIP no PC local.
Algo assim: ONCALLSTATECHANGED () ...
Isto é, para chamadas de voz usando o subsistema de telefonia embutido (3G, CDMA, etc.). Isso não tem nada a ver com VoIP.
Isso é possível com a atual API Android?
Depende do que é "isso". Se "This" for "interceptar a chamada telefônica 3G de entrada e ter o áudio para a chamada seja tratado pelo código Android", então não, não é possível.