我有一個使用核心音頻音頻單元的iPad應用程序(調諧器)。它從麥克風讀取信號並對其進行處理。它不會向揚聲器迴應聲音。麥克風和揚聲器反饋
不幸的是,在不同的時間,信號會實際反饋並從揚聲器中傳出 - 響亮而且相位不一。我沒有從麥克風與揚聲器之間建立任何聯繫 - 但它造成了麥克風以某種方式「開啓」的錯覺。它不是一個直接的信號 - 它被切碎,並要求你在發生之前發出一些大聲的噪音。
我擔心這是有關重載CPU或東西。我不認爲回調正在落後。如果我將調試語句放入回調函數中,當我關閉音頻單元時它們似乎停止了,這引起了另一個怪異現象。在某些時候,即使音頻單元已經停止,反饋也會從麥克風繼續發送到揚聲器,因此應用程序必須在不間斷的噪聲停止之前關閉並從後臺處理隊列中移除。
奇怪的是,這並不是每次都發生,並且對每個測試者都是如此,但它確實經常發生,足以引起騷動。
我覺得你撞到了頭上。我減少了處理,反饋消失了。爲了「自我」檢測我是否落後 - 我想我想看看inTimeStamp,並且知道剛剛進來的樣本數量,執行一些小算術以確保回調之間的時間不是以某種方式增長或持續時間超過它應該。我連接到總線1(麥克風),並簡單地將音頻呈現爲本地靜態緩衝區,因此我不確定是否有任何東西在這裏讓我實際上將其清零......但是,如果/當我開始使用ioData緩衝區。 –