2010-03-22 71 views
4

我正在計劃開發針對android的特定voip應用程序。Android,通過wlan撥打電話音頻流

下面是場景: 當發生電話呼叫時我想聽到在本地pc揚聲器上呼叫的人,我想通過我自己的pc麥克風/耳機與他通話。所以我需要通過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 
} 
} 
... 

這可能與目前的Android API? (其實這應該是因爲VOIP應用程序在市場上可用) 我做Android的API中的一些研究和所有我發現是AudioManager已定名爲

public static final int STREAM_VOICE_CALL; //The audio stream for phone calls 

但我不知道怎麼用它是我們應該如何訪問我可以通過網絡發送的實際音頻流。我如何設法做到這一點?

連接將通過TCP套接字來實現。

+0

要在Android上構建VOIP應用程序,您需要獲取或構建自己的SIP堆棧和RTP堆棧以及對音頻流進行impliment編碼和decdoing。 – 2010-03-22 13:53:37

回答

2

這裏的情景:當一個電話 發生我想聽到誰的 呼籲本地PC喇叭的人,我 想通過我自己的電腦 麥克風/耳機和他說話。所以我需要 通過 wlan網絡發送我和 我正在通話的人的音頻流。

在Android中有什麼意義?如果您有本地PC,並且您想使用本地PC進行音頻輸入/輸出,請在本地PC上使用VOIP應用程序。

事情是這樣的:onCallStateChanged()...

這對於語音通話使用內置電話子系統(3G,CDMA等)。這與VOIP無關。

目前的Android API有可能嗎?

這取決於「this」是什麼。如果「this」是「攔截傳入的3G電話呼叫並通過Android代碼處理該呼叫的音頻」,則不能,這是不可能的。

+0

那麼該應用程序應該可以作爲免提套件工作。但實際上是的,它應該攔截這些電話,但如果這不可能,那我就不得不去想別的什麼。不管怎麼說,還是要謝謝你。 – user283494 2010-03-22 14:02:50

+0

@CommonsWare>對此有何評論? http://stackoverflow.com/questions/33062660/android-what-audio-mode-should-be-set-to-send-receive-voice-between-devices – Jasper 2015-10-11 13:17:09