news 2026/4/20 19:36:36

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何实现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实战开发干货,请关注下面“千里马学框架”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 19:28:49

MAA明日方舟自动化助手:从零开始的全功能使用指南

MAA明日方舟自动化助手:从零开始的全功能使用指南 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitcode…

作者头像 李华
网站建设 2026/4/20 19:27:17

Element Plus按钮组件大更新:从type.text到link的平滑迁移实战

Element Plus按钮组件升级指南:从废弃type.text到高效使用link的完整方案 Element Plus作为Vue生态中最受欢迎的UI组件库之一,其3.0版本的发布带来了多项重要改进。其中按钮组件的API调整尤为值得关注——type"text"属性被正式标记为废弃&…

作者头像 李华
网站建设 2026/4/20 19:25:40

终极指南:如何用LiveTalking构建实时交互数字人系统

终极指南:如何用LiveTalking构建实时交互数字人系统 【免费下载链接】metahuman-stream Real time interactive streaming digital human 项目地址: https://gitcode.com/GitHub_Trending/me/metahuman-stream LiveTalking(原metahuman-stream&am…

作者头像 李华