Flutter基于本地UI集成的通话录音应用程序

15

我正在尝试使用Flutter、CallKit(iOS)和ConnectionService(Android)实现本地UI集成的通话录音功能。

由于没有指南来集成Flutter和CallKit或ConnectionService或任何其他服务以启用系统级通话录音而无需获取root权限或越狱,因此这个问题才出现。 虽然有很多适用于越狱设备的应用程序,并且Android本身支持通话录音,但是没有确切的指南来使用Flutter实现相同的功能。

使用Flutter 1.7和支持后向兼容的Marshmallow+ ConnectionService的AndroidX。

预期结果是在有来电时自动录音或提示用户进行录音。

目前完全无法实现,也许我在文档中缺少一些重要信息或者我对使用Flutter创建系统支持的通话录音应用程序的成功执行所需的知识不足。


https://flutter.dev/docs/development/platform-integration/platform-channels - ibhavikmakwana
3
在Flutter上复制具有本机通话录音功能的应用程序将很困难。具有通话录音功能的应用程序在原生Android上实现之前需要经过大量开发。您基本上将在已经难以实现的功能上编写平台集成代码。我建议您首先尝试使用本机版本,然后再考虑在Flutter上复制它。请务必不要将此视为挫败,但是先了解您首先涉足的本机内容将会对您有所帮助。 - imaadhrizni
我理解这个过程的困难,因此希望一些最聪明和经验丰富的人来帮助我实现尚未记录的内容。 - Junaid Shaikh
1个回答

4

由于没有关于将Flutter与CallKit和ConnectionService集成的指南...

简而言之,如评论中所述,您需要参考https://flutter.dev/docs/development/platform-integration/platform-channels通过实现平台特定代码(例如CallKit / ConnectionService)自行完成。

首先,因为当前可能没有Flutter库已经方便地为您打包好这些内容,至少在https://pub.dev/flutter上没有,所以这就是为什么您需要自己完成它的原因。

现在,假设所有限制、权限、rooting、越狱等对您不构成问题,则需要先在iOS / Android中本地实现这些API,例如Android

@Override
public void onMethodCall(MethodCall call, Result result) {
    if (call.method.equals("recordCall")) {
        result.success(recordCall());
    }
}

这将使你能够从Flutter中调用它们:

_recordCall() {
  var recording = await platform.invokeMethod('recordCall');
}

所以不要考虑如何在Flutter中完成此操作,上面的部分是容易的。
你应该从这个角度来看待问题:如何在iOS/Android上完成此操作,因为魔法就在于recordCall()

更像是在其上创建一个库。 - orimdominic

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