VOIP通话记录

时间:2018-01-20 08:24:34

标签: android whatsapp call-recording voip-android

我正在开发一个项目来记录Android中的VOIP调用,我没有找到任何解决方案,有很多应用程序支持手机上的VOIP录音。我找不到任何教程和帮助。 Cube Call Recorder是提供此功能的应用之一,但我无法弄清楚如何做到这一点。 我通过使用android MediaRecorder 然后启动whatsapp呼叫开始录制来测试它,所以其他人无法听我的声音。通话结束后,我只检查了我的录音中保存的声音。

作为一项研究,我反向设计了一些apks,我发现他们在apk中使用了Accessibility权限。

<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />

我不知道我需要了解哪些事情我怎么才能知道VOIP呼叫的来来去去就像 BroadcastReceiver

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

1 个答案:

答案 0 :(得分:0)

我找到了答案

首先授予访问权限并拥有此类

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();