2011-12-29 196 views
0

我正在創建一個合併聲級計(用戶佩戴接觸式或喉式麥克風)的應用程序。 我使用(不建議使用)定製類SCListener它使用一個AudioQueue和檢索值kAudioQueueProperty_CurrentLevelMeter是0和1調整iPhone音頻輸入增益/靈敏度

我的問題之間的值是在正常的使用水平,該kAudioQueueProperty_CurrentLevelMeter值已經達到峯值1.0 - 我希望做的是減弱或降低接觸式麥克風的輸入靈敏度,這樣一個尖叫聲或真正大聲的叫喊聲就會註冊爲1.0而不是正常通話。

通過我的搜索,我看到了一些音頻單元的討論,但還沒有找到任何我能夠理解的文檔或例子。

有沒有一種方法可以降低我的應用程序中的敏感度或增益或輸入行?任何幫助是極大的讚賞!

回答

0

目前似乎沒有公共API來手動調整iOS設備上的麥克風輸入增益。

或者,您可以設置音頻隊列或RemoteIO音頻單元,分析您在回調緩衝區中找到的PCM樣本,然後根據您的需要計算自己的幅度包絡(或頻譜加權幅度等)和比例。但那是在麥克風輸入採樣之後。

+0

這是否允許我使用kAudioQueueProperty_CurrentLevelMeter或AVAudioRecorder peakValue來測量比最大輸入音量更大的輸入音量還是實際上是相同的? (即在我分析PCM樣本之前輸入電平是否已經達到最大)? – chrisgilpin 2011-12-30 02:41:50