2014-02-10 137 views
2

我得到了我的一位客戶的要求,那就是我們必須在iPhone麥克風中說出一些東西,並且該聲音(我們在麥克風中說過)有同時來自iPhone揚聲器(沒有任何延遲)。在iPhone麥克風中進行對話並同時在揚聲器中播放該聲音

例如:在公開會議中,如果發言人在麥克風中說些什麼,那麼這些聲音就會毫無延遲地從揚聲器中發出。我必須做同樣的事情

我們必須使用Objective-c。我從去年一直在做研究。任何人都可以請指導我如何做到這一點。任何想法/建議可能非常感謝。

+0

任何人都可以告訴我爲什麼它被拒絕投票? – SRI

+0

@Ermaidu以及任何感興趣的人:最近,我被那些喜歡認爲自己是最終裁判的SO成員感到憤怒,他們爲最愚蠢的理由而失望,而不是建設性和自己的企業。 – Merlevede

+0

只爲記錄我沒有投票。 – GuybrushThreepwood

回答

0

如果你有任何使用iOS語言編程的經驗,這並不難,但是如果你從未編程過任何這樣的東西,可能會閱讀大量的文檔。

你需要什麼可以使用Audio Units來實現。有一些蘋果的例子,如Audio Mixer

簡而言之,音頻單位是連接在一起創建音頻圖形的小零件。您需要將路由至麥克風的輸入音頻單元連接至路由至揚聲器的輸出音頻單元。

在這一點上,對於我(和任何人)來說,這個主題上的任何其他內容都很難在文檔中找到。也許當你取得一些進展時,你的問題會更具體。

+0

對於任何人downvoted,我可以得到一些反饋? – Merlevede

+0

你有沒有正確的閱讀這個問題?用戶正在詢問現場聲音。音頻混音器僅適用於錄製的文件,不適用於實時音頻,用戶請求未保存的音頻文件。他編輯了這個問題 – Tendulkar

+5

@Tendulkar音頻混音器是一個使用兩個錄音的例子,但這只是一個如何使用音頻單元的例子,不要指望一個例子完全按照你想要的來做。如果在混音器中切換輸入音頻單元的錄音之一,則您需要使用麥克風輸入的混音器! – Merlevede

1

零延遲是不可能的。大多數iOS設備的最小音頻單元緩衝等待時間爲5.8毫秒;並且沒有更快的公共API連接到麥克風或揚聲器。

如果該順序的延遲是可以接受的,則嘗試使用RemoteIO音頻單元進行音頻記錄和播放,並使用AVAudioSession API請求最小緩衝時間和大小。

iOS音頻單元使用純C API,因爲所有較高級別的Objective C API速度較慢,因此不適用於低延遲音頻。

相關問題