[英]Is voice call recording back with android 10 (2019)?
我對android中的通話錄音非常感興趣。 但是正如您已經知道的那樣,android 正式關閉了 android 9 中的語音通話錄音。但就在 Android 10 發布(2019 年 9 月 3 日)之后,在瀏覽他們的新發行說明時,我發現以下頁面看起來很有希望通話錄音。 https://developer.android.com/guide/topics/media/sharing-audio-input 。 在這里,關於語音通話錄音可以看到以下內容。
因此,在閱讀本文后,我嘗試在無障礙服務中捕獲音頻。 這是我的代碼。 無障礙服務
public class MyAccessibilityService extends AccessibilityService { FrameLayout mLayout; public MyAccessibilityService() { } @Override public void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) { } @Override public void onInterrupt() { } @Override protected void onServiceConnected() { WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE); mLayout = new FrameLayout(this); WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); lp.type = WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY; lp.format = PixelFormat.TRANSLUCENT; lp.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; lp.width = WindowManager.LayoutParams.WRAP_CONTENT; lp.height = WindowManager.LayoutParams.WRAP_CONTENT; lp.gravity = Gravity.TOP; LayoutInflater inflater = LayoutInflater.from(this); inflater.inflate(R.layout.action_bar, mLayout); wm.addView(mLayout, lp); configureStartRecording(); configureStopRecording(); } private void configureStartRecording() { Button startRecordingButton = mLayout.findViewById(R.id.btnStartRecording); startRecordingButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { CustomMediaRecorder recorder = CustomMediaRecorder.getInstance(); File audiofile = null; String out = new SimpleDateFormat("dd-MM-yyyy hh-mm-ss").format(new Date()); File sampleDir = new File(getExternalFilesDir(null), "/TestRecordingDasa1"); if (!sampleDir.exists()) { sampleDir.mkdirs(); } String file_name = "Record"; try { audiofile = File.createTempFile(file_name, ".amr", sampleDir); } catch (IOException e) { e.printStackTrace(); } recorder.getRecorder().setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION); recorder.getRecorder().setOutputFormat(MediaRecorder.OutputFormat.AMR_NB); recorder.getRecorder().setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.getRecorder().setOutputFile(audiofile.getAbsolutePath()); try { recorder.getRecorder().prepare(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } recorder.start(getApplicationContext()); Log.i(MainActivity.LOG_PREFIX, String.format("Recording started. Saving to path: '%s'", audiofile.getAbsolutePath())); } }); } private void configureStopRecording() { Button button = mLayout.findViewById(R.id.btnStopRecording); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { CustomMediaRecorder recorder = CustomMediaRecorder.getInstance(); recorder.stop(); } }); }
並且無障礙服務配置具有以下配置
android:accessibilityFeedbackType="feedbackGeneric" android:accessibilityFlags="flagDefault" android:canPerformGestures="true" android:canRetrieveWindowContent="true"
所以這是我的觀察。
1. 仍然無法設置MediaRecorder.AudioSource.VOICE_DOWNLINK 和VOICE_UPLINK 音頻源。 它引發異常。
2. 當 MediaRecorder.AudioSource.VOICE_COMMUNICATION 和 MediaRecorder.AudioSource.MIC 在開始通話之前和斷開通話后被給予麥克風輸入時。
所以看起來我們甚至從無障礙服務中也沒有從呼叫中獲得任何流。 我在新更新到 android 10 的像素 3A xl 設備上嘗試了這個。
所以在讀完這篇文章后,在我失敗的審判之后,我有以下問題......
簡而言之,我只想知道 android 10 是否恢復了語音通話錄音...
首先感謝您的代碼。 我嘗試使用相同的代碼,並且使用了MediaRecorder.AudioSource.VOICE_RECOGNITION
並且我在三星 S10、一加 7 和 Real Me 中獲得了雙方的通話錄音。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.