Android手机现在基本上都有通话录音的功能。那么这个功能的原理是什么呢,

原理:语音通话包含uplink 和downlink数据,因此只要分别获取这两部数据,然后将PCM

格式的语音流转存成其他格式的文件即可,通过Modem To App的某种内存共享机制传输数据;

1. 通过Mic获取uplink data

//The framesize should be indicated by DSP, especially in call record

framesize = SAL_PcmEx_GetBufLen(SAL_PCMEX_BUF_SE);

/* handle uplink data from 1st mic */

dspAddr = SAL_PcmEx_GetBuf(SAL_PCMEX_BUF_SE);

IDMA_ReadFromDSP(buf, dspAddr, (uint32)framesize);

解释: SE负责对uplink data,进行Encrypt和Encode,即以3G,4G的协议编码

2. 获取DSP的downlink  Data

// get downlink data

dlFrameSize = SAL_PcmEx_GetBufLen(SAL_PCMEX_BUF_SD);

dspAddr = SAL_PcmEx_GetBuf(SAL_PCMEX_BUF_SD);

IDMA_ReadFromDSP(/*dualMicOrDlTempBuf*/buf+framesize, dspAddr, (uint32)dlFrameSize);

解释: SD负责对网络下行数据进行Decode; 由于每次上下行的数据包都很小,所以在

数据简单的叠加,人耳并不会听出其中有什么延时,能同时听到双方的声音。

3. 发送数据to App

void spc_record_sendPcmData(void)

SpcIO_WriteDataToAp

spcIO_sendDataViaCCCI

4. Android 侧的发起端

audio/common/speech_driver/SpeechDriverNormal.cpp

SpeechDriverNormal::sendSpeechMessageToModem

sendMailbox(&sph_msg, MSG_A2M_RECORD_RAW_PCM_ON, param_16bit, 0);

5.  MTK整了M2A之间的机制sendMailbox

sendMailbox

Android通话录音流程相关推荐

  1. 曝iPhone15或换用USB-C接口;Google将下架第三方Android通话录音APP|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  2. Android 通话录音代码流程

    通话录音: 从界面开始找代码,最后转了几个函数名,并转到多媒体录音模块  start_ record   voiceRecordClicked  --- CallButtonFragment.java ...

  3. Android音频子系统(十)------MTK Audio录音流程代码解析

    你好!这里是风筝的博客, 欢迎和我一起交流. Android framework中的代码每个平台基本都是大同小异,只有Hal上代码才是厂商特制,每个平台都不相同,这里以MTK平台为例,记录下MTK平台 ...

  4. Android设计缺陷--无法通话录音

    这个问题在Google Code之Android上讨论 了快一年,还没解决.这成为不少人无法从Symbian系统转移到Android系统的主要原因. Android手机搭配有强大的硬件,具有很多实用和 ...

  5. android 解决通话录音时无法返回挂断状态的bug

    据了解,安卓6.0开始不再支持通话录音,除非修改系统.系统放开权限.root,这也可以理解,毕竟这涉及到隐私问题,万一我一个亿的银行密码被人窃听了呢? 最近有个定制的系统有个需求--------通话录 ...

  6. android获取文件路径-(获取通话录音文件)

    中秋宅在家,估计国庆也要宅在家了,一个人的时光其实很惬意                                                                        ...

  7. android 9 电话录音,Android9.0的最大不爽:不能通话录音!国内用户闹情绪

    原标题:Android9.0的最大不爽:不能通话录音!国内用户闹情绪 前些天Android9.0正式版推送了,被命名为"安卓派",这些天不少手机厂商也在陆续行动,越来越多的机型可以 ...

  8. Android之录音--AudioRecord、MediaRecorder

    Android提供了两个API用于实现录音功能:android.media.AudioRecord.android.media.MediaRecorder. 网上有很多谈论这两个类的资料.现在大致总结 ...

  9. Android 实时录音和回放,边录音边播放 (KTV回音效果)

    原文地址为: Android 实时录音和回放,边录音边播放 (KTV回音效果) 上一篇介绍了如何使用Mediarecorder来录音,以及播放录音.不过并没有达到我的目的,一边录音一边播放.今天就讲解 ...

最新文章

  1. Python如何在以数字命名的文件前补0
  2. 如何独立开发一个网络请求框架
  3. 利用matlab对xml文件进行批量处理
  4. 游戏领域Serverless架构探索之路
  5. CNN发展历史【从LeNet到DenseNet】
  6. 如梦如幻,开源实时的天空特效算法!
  7. Springboot 启动时Bean初始化,启动异常-Assert.isTrue(condition,message) 报错
  8. linux汇编stdin,汇编:从标准输入中读取整数,将其递增并打印到标准输出
  9. JavaScript知识点总结 1
  10. C++前置声明的一个好处与用法
  11. 对三款软件的测评、分析和建议
  12. leetcode【中等】781、森林中的兔子
  13. 云开发:未来的软件开发方式
  14. 寒气笼罩中的一线暖冬
  15. csapp lab环境搭建及lab1wp
  16. java环境变量配置_Java环境变量配置终极版
  17. 走近棒球运动·科罗拉多落基队·MLB棒球创造营
  18. LPC1768 IAP写入bin格式程序不能启动的解决办法
  19. 淘宝产品ID在哪儿查询?
  20. fastAPI简单使用

热门文章

  1. 宗镜录略讲——南怀瑾老师——系列6
  2. 多版本node安装相关知识
  3. python打包成exe fail to ex_“failed to excute script xxx” PyInstaller 打包python程序为exe文件过程错误...
  4. odoo中分组查询函数read_group
  5. 读《不乖教师的正能量》摘抄
  6. 武汉大学计算机系王侃,武汉大学信息管理学院
  7. Daily Pathtracer!安利下不错的Pathtracer学习资料
  8. python制作礼物_opencv+python制作硬核七夕礼物
  9. 先人들의 白頭山 登程路
  10. vite+ts+elementplus运行正常打包报错