2011-11-30 161 views
1

我有一個處理音頻錄製的第三方SDK。記錄開始時有一個回調。在回調中,我試圖播放聲音以向用戶表明設備正在偵聽(如Siri或任何其他語音識別傾向於這樣做),但是當我嘗試出現以下錯誤時:在錄製失敗時播放聲音

AURemoteIO :: ChangeHardwareFormats:錯誤-10875

我試圖使用AudioServicesPlaySystemSound播放聲音以及AVAudioPlayer都有相同的結果。聲音在其他時間播放良好,根據錯誤我假設在硬件級別播放和錄製之間存在不兼容性。任何人都可以澄清這個錯誤,或給我一個暗示可能的解決方法?

+0

我自從發現SDK有一種方法可以在錄製開始時播放聲音進行播放!只有它不能正常工作。它會在您要求錄製開始時播放,而不是在實際啓動時播放,因此毫無意義,我又回到了原點。 – ima747

回答

0

我的問題與外部SDK有關,以及它們如何處理音頻接口。當您要求SDK開始錄製時,它們會覆蓋所有內容,如果您控制回斷開錄製會話。所以在SDK的上下文中,除非他們修復SDK,否則無法解決它。

0

您不應該也可能無法在RemoteIO錄音回撥中播放聲音。只在回調中設置一個布爾標誌來表示應播放聲音。從主UI運行循環播放你的聲音。

+0

回調在主線程上執行。自那時起,我嘗試從一個子線程播放聲音,並且延遲並明確地在主線程中播放聲音(僅僅是因爲我錯了,並且它不在主線程中)以試圖繞過任何聲音線程有關打嗝但沒有效果。我似乎與音頻硬件本身有關。 – ima747

1

在開始RemoteIO音頻單元錄製之前,請確保音頻會話已初始化並配置爲用於播放和錄製。

+0

在第三方SDK調用之前,它被我用來播放和錄製。也許他們在內部改變它只是記錄?如果他們這樣做,這是人們應該期望的錯誤嗎? – ima747