uni-app 安卓通话录音上传插件

发布于 1周前 作者 caililin 来自 Uni-App

uni-app 安卓通话录音上传插件

要求:

  1. 兼容安卓4.4 - 安卓11
  2. 兼容大部分国产手机品牌,如:小米、红米、VIVO、OPPO、华为、荣耀、魅族
  3. 用APP发起通话,使用手机自带的通话录音功能,大部分手机都带的接通后自动录音(如果可以检测和提示开启自动录音功能最好)
  4. 通话结束后自动回调数组:被叫、开始时间、结束时间、通话时长、录音地址(要求提前申请好权限,确保可以访问)
  5. 将回调参数和录音文件上传到服务器(使用web表单的方式即:multipart/form-data)
  6. 提供源代码
开发环境 版本号 项目创建方式

3 回复

支持Android13、通话状态监听、通话录音文件获取、通话自动录音、通话记录获取:https://ext.dcloud.net.cn/plugin?id=11480

在uni-app中实现安卓通话录音并上传的功能,需要结合原生插件开发。由于uni-app本身并不直接支持通话录音,你需要借助安卓平台的原生能力。以下是一个简要的实现思路和代码示例,注意实际应用中需要遵循相关法律法规,获取用户同意等。

实现思路

  1. 创建原生插件:编写安卓原生代码实现通话录音功能。
  2. 集成插件到uni-app:将原生插件集成到uni-app项目中。
  3. 调用插件并上传录音文件:在uni-app中调用插件接口进行录音,并将录音文件上传到服务器。

安卓原生插件代码示例

1. 创建插件

在Android Studio中创建一个新的Module作为uni-app插件。

// 插件主类
public class CallRecorderPlugin extends UniModule {
    // 录音方法
    @JSMethod(uiThread = false)
    public void startRecording(JSONObject options, UniJSCallback callback) {
        // 实现录音逻辑,如使用MediaRecorder进行录音
        // 录音完成后,获取录音文件路径
        String filePath = "/path/to/recorded/file.wav";
        callback.invoke(filePath);
    }
}

2. 配置插件

manifest.json中配置插件,确保uni-app能够识别并使用该插件。

"nativePlugins": [
    {
        "android": {
            "package": "com.example.callrecorder",
            "className": "CallRecorderPlugin"
        }
    }
]

uni-app调用插件并上传录音文件

1. 调用插件录音

// 引入插件
const callRecorder = uni.requireNativePlugin('CallRecorderPlugin');

// 开始录音
callRecorder.startRecording({}, (result) => {
    const filePath = result;
    uploadRecording(filePath);
});

2. 上传录音文件

function uploadRecording(filePath) {
    uni.uploadFile({
        url: 'https://your-server.com/upload', // 服务器上传接口
        filePath: filePath,
        name: 'file',
        success: (uploadFileRes) => {
            console.log('上传成功', uploadFileRes);
        },
        fail: (err) => {
            console.error('上传失败', err);
        }
    });
}

注意事项

  • 权限处理:确保在AndroidManifest.xml中添加了录音和读写存储权限,并在运行时请求用户授权。
  • 录音格式:根据需求选择合适的录音格式(如WAV、AMR等)。
  • 文件大小:录音文件可能较大,注意处理上传过程中的错误和重试逻辑。
  • 法律法规:确保应用符合当地法律法规,获取用户明确同意后再进行录音和上传操作。

以上代码仅为示例,实际开发中需要根据具体需求进行调整和优化。

回到顶部