2012-03-12 50 views
4

我正在搜索有關如何在Android上操作音頻的選項。目標是在通話期間實時處理來自麥克風的音頻。最好的解決方案是通過本地電話進行。但重建電話應用程序(無VOIP)也可以。有沒有什麼方法可以通過Android API實現這一點(也沒有文檔)? 如果不是,哪些步驟將是必要的事情運行?Android:操縱電話中的語音

在iOS上有一些應用程序操縱語音,但創建一個VOIP連接。我聽說在Android上,你可以「克隆」電話應用程序,並最終用自己的音頻流提供它?在通話過程中沒有添加噪音的應用程序嗎?涉及哪些類型的API?

回答

4

最好的解決方案是在本地調用上做到這一點。

這是不可能的。您可能無法訪問通話中的音頻流,除了免提模式。

但重建電話應用程序(無VOIP)也可以。

來自Google(2010)的最後一個官方詞彙,整個操作系統都無法訪問通話中的音頻流,因爲它都是在較低級別處理的。即使新版Android可以訪問通話音頻流,但只有在創建自定義固件時才能「重建電話應用程序」。

+0

所以,你會說,即使手機已經紮根,也沒有辦法抓住它嗎? – Jan 2012-03-12 22:43:59

+0

@kuq:同樣,AFAIK,整個OS都無法訪問通話音頻流。生根不會改變這一點。 – CommonsWare 2012-03-12 22:44:52

+0

然後我可以訪問哪一層?我讀過HAL(硬件抽象層),但不知道是否有任何成功的變化。 – Jan 2012-03-13 19:06:30

0

作爲一個缺點,我可以想象使用MediaRecorder API記錄下行流並使用AudioTracks write()方法將其寫回硬件。通過這個我可以操縱傳入的聲音。但我仍然認爲這在電話通話中不起作用。我沒有看到選擇不同硬件目的地的方法。