[英]Outgoing call muted after recording audio on Android with AudioRecord class
[英]Android Call Recording Downlink muted
我正在嘗試使用 Android 錄制上行和下行語音。 不管法律和一切,我已經知道了,所以請不要發表與法律相關的評論。
下面的代碼工作正常,除了當我將麥克風靜音時,它不會記錄下行語音。
我正在使用 Android 8.1。 我試過在同一台設備上使用名為 ACR 的第三方應用程序,它工作正常,雖然我靜音,但它仍然記錄下行鏈路語音。
val audioManager = applicationContext.getSystemService(Context.AUDIO_SERVICE) as AudioManager
val maximumVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL)
audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, maximumVolume, 0)
val audioSource = MediaRecorder.AudioSource.MIC
val mediaRecorder = MediaRecorder()
mediaRecorder.apply {
setAudioSource(audioSource)
setOutputFormat(MediaRecorder.OutputFormat.MPEG_4)
setAudioEncoder(MediaRecorder.AudioEncoder.AAC)
setAudioChannels(audioChannels)
setAudioSamplingRate(audioSamplingRate)
setAudioEncodingBitRate(audioEncodingBitRate)
setOutputFile(path)
prepare()
start()
這不是問題。 您將 MediaRecorder 設置為使用 MIC 作為輸入,因此如果您將麥克風靜音,顯然輸入信號丟失/靜音。 當您使用“下行鏈路”一詞時,我希望看到不同的輸入源為 VOICECALL 或 DOWNLINK 而不是 MIC。 嘗試使用 MIC 錄制語音通話在我看來是錯誤的,因為:(1)您必須將最大音量設置為揚聲器並通過它重定向語音通話(2)同時從 MIC 錄制語音通話,來電者會聽到周圍發生的所有事情您的設備以及您對其他人所說的所有內容 (3) 此方法會記錄大量噪音和回聲。 正確的方法是從 VOICECALL 錄制,但大多數新設備(使用較新的 Android 版本)阻止從該來源錄制,僅允許在系統應用程序中進行錄制。 ACR 通過調用隱藏的 API 方法使用一種變通方法,但此方法可能會因 Android 更新而隨時停止工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.