Android,通过无线局域网的电话音频流

use*_*494 5 networking android voip

我计划为 android 开发我的特定 voip 应用程序。

场景是这样的:当有电话时,我想听到打电话给我本地电脑扬声器的人,我想通过我自己的电脑麦克风/耳机与他通话。所以我需要通过 wlan 网络发送我和我正在与之交谈的人的音频流。

像这样的东西:

...
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
 }
}
...
Run Code Online (Sandbox Code Playgroud)

当前的 Android API 可以实现吗?(实际上应该是因为 voip 应用程序在市场上可用)我在 Android API 中做了一些研究,我发现的只是 AudioManager,它具有常量名称

public static final int  STREAM_VOICE_CALL; //The audio stream for phone calls 
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用它我们应该如何让我访问我可以通过网络发送的实际音频流。我该如何做到这一点?

连接将通过 TCP 套接字实现。

Com*_*are 2

场景如下:当接到电话时,我想通过本地电脑扬声器听到打电话的人的声音,并且想通过我自己的电脑麦克风/耳机与他通话。所以我需要通过无线局域网发送我和我正在通话的人的音频流。

混合使用 Android 有何意义?如果您有本地 PC,并且想要使用本地 PC 进行音频输入/输出,请使用本地 PC 上的 VOIP 应用程序。

像这样的东西:onCallStateChanged()...

这适用于使用内置电话子系统(3G、CDMA 等)的语音呼叫。这与 VOIP 无关。

当前的 Android API 可以实现吗?

这取决于“这个”是什么。如果“this”是“拦截来电 3G 电话并让 Android 代码处理通话音频”,那么不,这是不可能的。