VOIP通话录音

8
我正在开发一个在安卓中录制VOIP通话的项目,但是我没有找到任何解决方案。虽然有很多支持手机VOIP录音的应用程序,但我无法找到任何教程和帮助。其中一个名为Cube Call Recorder的应用程序提供了此功能,但我无法弄清楚如何使用它。我尝试使用安卓MediaRecorder开始录制,然后发起whatsapp电话,结果对方无法听到我的声音。通话结束后,我发现只有我的声音被保存在录音中。
作为研究,我反向工程了一些apk,并发现它们在apk中使用了辅助功能权限。
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />

我不知道需要了解哪些内容才能知道VOIP呼叫的到来和离去,就像BroadcastReceiver一样。

然后,我将了解如何记录通话。


你找到解决方案了吗?我现在正在开发一个类似的应用程序,但似乎找不到任何方法来完成这个功能。 - Tal Mantelmakher
没有伙计,还不行。 - Naveed Ahmad
有什么解决方案吗? - suv
还没有,伙计们…… - Naveed Ahmad
@NaveedAhmad:你找到解决方案了吗? - Anand Savjani
显示剩余2条评论
1个回答

1
我已经找到了这个问题的答案。
首先,授予可访问权限并拥有这个类。
import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.content.Intent;
import android.util.Log;
import android.view.accessibility.AccessibilityEvent;

public class AccessAudio extends AccessibilityService {
    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
Log.d("","gf");
    }

    @Override
    protected void onServiceConnected() {
        super.onServiceConnected();

        AccessibilityServiceInfo accessibilityServiceInfo = new AccessibilityServiceInfo();
        accessibilityServiceInfo.flags = 1;
        accessibilityServiceInfo.eventTypes = -1;
        accessibilityServiceInfo.feedbackType = 16;
        setServiceInfo(accessibilityServiceInfo);
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public void onInterrupt() {

    }
}

之后你可以使用:
mediaRecorder = new MediaRecorder();
        mediaRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_RECOGNITION);
        mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        mediaRecorder.setOutputFile(AudioSavePathInDevice.getPath());
        mediaRecorder.prepare();
        mediaRecorder.start();

请问 @akkmastr 能否更详细地解释一下这个问题? - Dusan Lilic
@akkmastr:你能分享一下完整的代码吗? - Anand Savjani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接