如何实现AudioRecord内录r_submix模式系统Speaker正常发声?-学员作业

张开发
2026/6/5 12:57:49 15 分钟阅读
如何实现AudioRecord内录r_submix模式系统Speaker正常发声?-学员作业
背景近期一个学员求助一个需求需求大概描述如下公司一个安卓定制产品客户想要实现对手机设备的所有声音进行录制同时还需要录制mic麦克风声音。而且要求录制系统声音内录时候要求喇叭speaker也可以正常发声尽量可以不需要修改系统源码因为版本已经发布老板希望尽量客户需求只提供现成方案直接让客户app基于系统编译安装既可以。需求分析1、实现两个声音同时录制和合成这个其实比较好实现大概思路就是可以搞出两个AudioRecord一个AudioRecord实现内录考虑REMOTE_SUBMIX另一个mic声音也可以采用AudioRecord进行录制。然后把两个AudioRecord的buffer进行相加合成最后的buffer。2、系统内录声音时候要求speaker也可以有声音上面学员的需求提出后其实学习过audio课程后就知道内录系统声音的实现如果采用普通的AudioRecord加上AudioSource.REMOTE_SUBMIX方案会发现Speaker就无法出声了。audio课程中虽然有相关的实战案例让系统内录声音时候speaker也发出声音的情况不过当时是有修改AudioPolicyManager中获取device中额外添加上speaker这个device但是学员这里是要求不要修改系统源码就可以实现所以这种现成的方案就不适用了。那么如何实现不通过修改系统源码实现这个功能呢学员作业要求1、先不考虑是否可以修改系统源码情况自己思考出一种方案可以实现相关需求2、调研查看aosp系统中是否已经有了这个类似功能如果有可以考虑把这个功能进行参考学习3、如果第2步调查到有具体的功能请针对这个功能相关代码进行相关实现原理进行剖析原文参考https://mp.weixin.qq.com/s/ocmGyBOAj91DWj_1Eu3D5A更多framework实战开发干货请关注下面“千里马学框架”

更多文章