我正在使用Stephen Celis的SCListener類來錄製iPhone麥克風音頻電平。我也通過使用AVAudioPlayer播放音頻。例如,用戶按下「播放」以播放在背景中播放的聲音,然後可以選擇吹入麥克風以播放更短的聲音。代碼一切正常,在播放所有聲音時播放所有聲音,但是,當您開始使用SCListener進行偵聽時,AVAudioPlayer音量大大降低。我已經縮小了SCListener源代碼中此行的罪魁禍首:AudioQueueNewInput減少AVAudioPlayer的播放音量
AudioQueueNewInput(& format,listeningCallback,self,NULL,NULL,0,& queue);
我已經絞盡腦汁,無法知道如何將播放音量保持在最高級別,一旦這條線執行完畢。我也和Stephen Celis談過了,他不知道發生了什麼。我猜想,有可能iPhone在使用麥克風時會降低輸出音量,以免引入反饋,但似乎應該有一種方法來禁用該功能。
總結:
- 開始播放長的音頻文件與AVAudioPlayer - 100%的體積(大聲)。
- 啓用SCListener並開始監聽(調用AudioQueueNewInput)。
- 上AVAudioPlayer聲音的輸出音量大大減小
- 呼叫[[SCListener sharedListener]停車]處置隊列的
- AVAudioPlayer聲音恢復更高回放音量
有沒有人看到這樣的事或對如何保持播放音量更高有什麼想法?我已明確將音量參數設置爲1.0f,以確保增益處於最高級別。
發現在蘋果開發者論壇這個可能的解決方案:默認情況下,蘋果音頻會話設置重新路由播放音頻只有耳機插孔(禁用揚聲器輸出)從麥克風在錄音時同一時間。您必須通過會話屬性啓用揚聲器輸出才能在錄製時將音頻輸出到揚聲器。 – user110481 2009-05-21 13:34:24