记录一下近半个月的一个项目解决思路
需求是这样的
1,通话双向录音
2,监听移动端通话状态
3,挂断后上传通话录音到后端进行统计
先说下第一点 通话双向录音,这个在android 6之前还有办法实现,但是现在基本都是单向的,只能录到己方的通话,所以只能退而求其次,判断移动端通话自动录音开关是否开启,让使用者手动打开通话自动录音然后在获取相应的通话录音
然后在查找大量资料后发现判断通话自动录音开关的权限是不对第三方应用开放的,所以只能放弃,让使用者手动打开通话录音,再检测不到录音文件时进行提示
第二点 监听移动端通话状态
参考原生插件 https://ext.dcloud.net.cn/plugin?id=1204
第三点检测录音文件
这块使用的是njs 引用原生的一些方法和类进行指定文件目录的文件检索针对不同的机型通话录音存放的位置是不同的
存放路径 参考
![](https://i-blog.csdnimg.cn/blog_migrate/c1f83c593ed461c55a427dd2fa31d018.png)
期间踩到的坑
1,uniapp 文件路径是有两种的 一种是原生的文件路径 类似/storage/emulated/0/** 一种是uni内部的文件路径 比如 _doc/**/**
2, android10+ 以后出现了文件分区存储,导致录音文件所在的目录没有访问权限 详情文章https://ask.dcloud.net.cn/article/36199