V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ancientmoon
V2EX  ›  Android

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

  •  
  •   ancientmoon · 2019-03-08 19:29:52 +08:00 · 10118 次点击
    这是一个创建于 2086 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    8 条回复    2019-03-09 12:16:35 +08:00
    ancientmoon
        1
    ancientmoon  
    OP
       2019-03-08 20:49:48 +08:00
    没人知道吗?
    Tink
        2
    Tink  
       2019-03-08 21:52:15 +08:00 via iPhone
    先录,录完之后再分离
    nanaw
        3
    nanaw  
       2019-03-08 22:39:00 +08:00 via Android
    虽然不知道有什么方案,但这想法不错阿。期待楼主做出产品
    pual
        4
    pual  
       2019-03-08 22:44:44 +08:00 via Android
    tiny alsa 有直接读取声卡的 API
    ancientmoon
        5
    ancientmoon  
    OP
       2019-03-09 00:51:22 +08:00
    @pual 确实是个思路,没了解过 tinyalsa,需要学习一下,谢谢。
    Kylin30
        6
    Kylin30  
       2019-03-09 01:06:41 +08:00
    不是很懂安卓开发,不过我想麦克风里的就是自己的,喇叭里出来的是对方的,分别录制就可以了吧。
    ancientmoon
        7
    ancientmoon  
    OP
       2019-03-09 11:43:20 +08:00
    @Kylin30 系统只允许同时存在一个录音实例,要么只录自己,要么只录对方,要么自己和对方一起录。就是没有分开同时录的。。。
    cxtrinityy
        8
    cxtrinityy  
       2019-03-09 12:16:35 +08:00
    没研究过,不过可以抽象看看
    首先,要确定 audiorecorder 录的声源,是直接录环境声音,还是直接读取声源
    如果直接录的环境内的声音,我觉得肯定是分不开的,因为没办法区分是谁说的
    如果直接读取声源,那通话对象的声音至少是读取音箱,更上一层可能读取通信信号,而当前手机持有人的声音应该是读取的麦克风,这样自然就是分开的,你只要分别录制两边的声源就好了
    我觉得这个挖起来至少要挖到 HAL 层以下了,不熟悉系统可能挺难的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2691 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 15:04 · PVG 23:04 · LAX 07:04 · JFK 10:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.