11

我想在通话过程中为传入和传出线路录制语音。我尝试了许多解决方案,这些解决方案可以在 Moto 手机以外的设备上运行(在我的情况下,我尝试过 Moto E(第 2 代)、Moto G5 和 Moto C)。我试过这两个库:

  1. call-recorder-for-android 这个库首先会崩溃,并带有以下日志跟踪

03-07 10:56:57.307 293-9261/? E/AudioRecord:无法获取记录源 4、采样率 8000、格式 0x1、通道掩码 0x10、会话 3494、标志 0 03-07 10:56:57.308 293-9261/的音频输入?E/StagefrightRecorder:音频源未初始化 03-07 10:56:57.309 7290-7290/com.callrecorder.android E/MediaRecorder:启动失败:-2147483648 03-07 10:56:57.314 7290-7290/com.callrecorder .android E/Call 录音机:设置录音机失败。java.lang.RuntimeException:启动失败。在 com.callrecorder.android.RecordService.startRecording(RecordService.java:

根据Android官方文档

从 VOICE_CALL 源捕获需要 CAPTURE_AUDIO_OUTPUT 权限。此权限保留供系统组件使用,第三方应用程序不可用。

因此,我尝试将 AudioSource 更改为AudioSource.VOICE_COMMUNICATION可以正常工作而不会崩溃。但无法记录传入的声音。它只记录传出的声音。我已经尝试过同样的方法,AudioSource.DEFAULT但再次没有运气。它的行为与AudioSource.VOICE_COMMUNICATION

  1. CallRecLib

这个库在 NDK 级别有一些调整。但这也给出了与上述库相同的结果AudioSource.VOICE_COMMUNICATION

根据 MOTO 官方论坛这个讨论帖,摩托罗拉官方表示,他们内部不支持 VOICE CALL 录音,但一些第三方应用程序可能可以做到。这实际上是正确的。Play商店中的自动呼叫记录器应用程序提供了相同的工作解决方案。我无法找到它做了什么样的修改,这给了它一个可行的解决方案。任何帮助,将不胜感激

4

0 回答 0