android 如何实现通话录音时将己方和对方的声音分别录制为两个 pcm?

2019-03-08 19:29:52 +08:00
 ancientmoon

如题,已经有 root 权限。需要在将通话双方的声音录制为两个文件。 想法 1:由于 audiorecord 只能有一个实例,如果想开两个 audiorecord 会报错。那么我们修改源码让系统支持多个 audiorecord 实例,问题是如何修改? 想法 2:录音时将己方设置为左声道,对方设置为右声道,然后分离左右声道数据为两个 pcm 文件。将左右声道分离方法网上很多,问题是如何在录音时将己方设置为左声道,将对方设置为右声道? 想法 3:没想到~~~请问各位有什么高招?

7384 次点击
所在节点    Android
8 条回复
ancientmoon
2019-03-08 20:49:48 +08:00
没人知道吗?
Tink
2019-03-08 21:52:15 +08:00
先录,录完之后再分离
nanaw
2019-03-08 22:39:00 +08:00
虽然不知道有什么方案,但这想法不错阿。期待楼主做出产品
pual
2019-03-08 22:44:44 +08:00
tiny alsa 有直接读取声卡的 API
ancientmoon
2019-03-09 00:51:22 +08:00
@pual 确实是个思路,没了解过 tinyalsa,需要学习一下,谢谢。
Kylin30
2019-03-09 01:06:41 +08:00
不是很懂安卓开发,不过我想麦克风里的就是自己的,喇叭里出来的是对方的,分别录制就可以了吧。
ancientmoon
2019-03-09 11:43:20 +08:00
@Kylin30 系统只允许同时存在一个录音实例,要么只录自己,要么只录对方,要么自己和对方一起录。就是没有分开同时录的。。。
cxtrinityy
2019-03-09 12:16:35 +08:00
没研究过,不过可以抽象看看
首先,要确定 audiorecorder 录的声源,是直接录环境声音,还是直接读取声源
如果直接录的环境内的声音,我觉得肯定是分不开的,因为没办法区分是谁说的
如果直接读取声源,那通话对象的声音至少是读取音箱,更上一层可能读取通信信号,而当前手机持有人的声音应该是读取的麦克风,这样自然就是分开的,你只要分别录制两边的声源就好了
我觉得这个挖起来至少要挖到 HAL 层以下了,不熟悉系统可能挺难的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/542620

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX