通话记录器在 android 10 (Q) 中不工作
Call recorder not working in android 10 (Q)
通话记录器在 Android 10(Pixel 3A)的持续时间内记录空白。在 Android 8 和 Android 9 之前,它对所有手机都工作正常,大多数手机只录制一侧的声音(但它在像素 3A 中工作正常)
在Android10有没有什么方法可以录音?
下面的代码似乎不再有效。
int audioSource = MediaRecorder.AudioSource.VOICE_CALL;
mediaRecorder.setAudioSource(audioSource);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mediaRecorder.setAudioEncodingBitRate(32);
mediaRecorder.setAudioSamplingRate(44100);
mediaRecorder.setOutputFile(MediaUri);
mediaRecorder.prepare();
mediaRecorder.start();
如果使用 SDK 28 或以下版本,通话录音会全程进行,但没有任何声音。如果使用 SDK 29,通话录音一开始会失败,提示检查来自回调的可用音频。
我希望它是 Google Android 10 中的一个错误,一些补丁会修复它。
根据 Google 的新权限 policy 没有其他第三方应用程序(系统应用程序除外)可以记录来自 Android 9 Pie 的呼叫。
此更改一般不会影响以前的录音或通话录音。
可以使用 Accessibility Service
。
Remote call recorder 和 BoldBeast 都可以在 Android 10 (Pixel 3A) 中完美地录制双方的声音,而无需 root 或成为系统应用程序。他们都使用无障碍服务。
这里有详细信息link。
我正在使用版本为 android 10 的 Realme2pro 设备,它对我有用 Accessibility
试试这个代码
要实现辅助功能,请执行此操作 link
public class Accessibility extends AccessibilityService {
Service mService = null;
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
Log.d("MyAccessibilityService", "Shrinidhi: onAccessibilityEvent");
}
@Override
public void onInterrupt() {
}
@Override
protected void onServiceConnected() {
Log.d("MyAccessibilityService", "Shrinidhi: onServiceConnected");
}
@Override
public void onCreate() {
this.mService = this;
Log.d("MyAccessibilityService", "Shrinidhi: onCreate");
}
}
并将 AudioSource 添加到 recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_RECOGNITION);
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_RECOGNITION);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(file.getAbsolutePath());
希望它有用:)
通话记录器在 Android 10(Pixel 3A)的持续时间内记录空白。在 Android 8 和 Android 9 之前,它对所有手机都工作正常,大多数手机只录制一侧的声音(但它在像素 3A 中工作正常)
在Android10有没有什么方法可以录音?
下面的代码似乎不再有效。
int audioSource = MediaRecorder.AudioSource.VOICE_CALL;
mediaRecorder.setAudioSource(audioSource);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mediaRecorder.setAudioEncodingBitRate(32);
mediaRecorder.setAudioSamplingRate(44100);
mediaRecorder.setOutputFile(MediaUri);
mediaRecorder.prepare();
mediaRecorder.start();
如果使用 SDK 28 或以下版本,通话录音会全程进行,但没有任何声音。如果使用 SDK 29,通话录音一开始会失败,提示检查来自回调的可用音频。
我希望它是 Google Android 10 中的一个错误,一些补丁会修复它。
根据 Google 的新权限 policy 没有其他第三方应用程序(系统应用程序除外)可以记录来自 Android 9 Pie 的呼叫。
此更改一般不会影响以前的录音或通话录音。
可以使用 Accessibility Service
。
Remote call recorder 和 BoldBeast 都可以在 Android 10 (Pixel 3A) 中完美地录制双方的声音,而无需 root 或成为系统应用程序。他们都使用无障碍服务。
这里有详细信息link。
我正在使用版本为 android 10 的 Realme2pro 设备,它对我有用 Accessibility
试试这个代码
要实现辅助功能,请执行此操作 link
public class Accessibility extends AccessibilityService {
Service mService = null;
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
Log.d("MyAccessibilityService", "Shrinidhi: onAccessibilityEvent");
}
@Override
public void onInterrupt() {
}
@Override
protected void onServiceConnected() {
Log.d("MyAccessibilityService", "Shrinidhi: onServiceConnected");
}
@Override
public void onCreate() {
this.mService = this;
Log.d("MyAccessibilityService", "Shrinidhi: onCreate");
}
}
并将 AudioSource 添加到 recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_RECOGNITION);
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_RECOGNITION);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(file.getAbsolutePath());
希望它有用:)