我的應用是測量捕獲音頻的音量,作爲樣本絕對振幅的函數。撥打電話後Android麥克風靈敏度發生變化
我注意到了Android SDK的android.media.AudioRecord
中的意外行爲。讓我們假設以下流程:
- 應用程序啓動
- 音頻音量正在測量
- 電話電話接聽/撥打
- 音頻音量正在測量
的周圍噪音麥克風由具有恆定音量設置的電視機制作。對於點2測量的值在[55-65]範圍內,並且對於點4測量的值在範圍[15-25]中(請參見下面的音頻可視化對於2.和4.)。
我知道在發生電話時必須進行一些音量調節。是否有可能監視這些調整或擺脫它們?
我試過AutomaticGainControl,但它不支持我的Nexus 5,我不想使用它,因爲目標設備可能不支持它。
更新 此卷調整後,才電話發生不。我剛剛注意到電話剛躺在桌子上測量音量時的相同行爲。
對於像麥克風這樣的共享資源,你是絕對正確的。你什麼意思是在1?我計算每個記錄樣本的音量,這不是一個UI設置。我的另一個擔憂是收益不會保持音質。 –
對於1 - 保存您每次錄製所需的所有麥克風設置,並在應用程序返回到前景時恢復它。 – FunkSoulBrother
感謝您的意見@FunkSoulBrother。這些都是有效的建議,但對我來說主要問題在** Update **部分中突出顯示。沒有電話事件,我發生了靈敏度變化 - 應用程序在前臺,手機甚至沒有SIM卡。我需要在錄製時提供穩定的音質。 –