【问题标题】:Android: Manipulating voice in phone callsAndroid:在电话中操纵语音
【发布时间】:2012-03-12 17:32:30
【问题描述】:

我目前正在寻找有关如何在 android 上操作音频的选项。目标是在通话期间实时处理来自麦克风的音频。最好的解决方案是在本机调用上执行此操作。但是重建一个电话应用程序(没有 VOIP)也可以。是否有任何方法可以使用 Android API(也未记录)来实现这一点? 如果不是,需要哪些步骤才能让事情顺利进行?

在 iOS 上,有一些应用程序可以操纵语音但会创建 VOIP 连接。我听说在 Android 上你可以“克隆”电话应用程序并最终用你自己的音频流馈送它?没有应用程序会在通话过程中添加噪音吗?涉及哪些 API?

【问题讨论】:

    标签: android audio signals microphone phone-call


    【解决方案1】:

    最好的解决方案是在本机调用上执行此操作。

    这是不可能的。您无权访问通话中的音频流,可能在免提模式下除外。

    但是重建一个电话应用程序(没有 VOIP)也可以。

    Google 的最后一个官方消息(2010 年),整个操作系统无法访问通话中的音频流,因为它都是在较低级别处理的。即使较新版本的 Android 确实可以访问通话中的音频流,“重建电话应用程序”也只有在您创建自定义固件时才有可能。

    【讨论】:

    • 所以你会说,即使手机已经root了也没有办法抢到这个?
    • @kuq:再一次,AFAIK,整个操作系统都无法访问通话中的音频流。生根不会改变这一点。
    • 那么我可以在哪一层访问这个?我阅读了有关 HAL(硬件抽象层)的信息,但不知道是否有任何成功的变化。
    • @kuq:“那我在哪一层可以访问这个?” - 难倒我了。 StackOverflow 用于软件开发,而不是硬件开发。
    • 是的,这就是我问“抽象”层的原因!
    【解决方案2】:

    作为一个缺点,我可以想象使用 MediaRecorder API 记录下行链路流并使用 AudioTracks write() 方法将其写回硬件。通过这个我可以操纵传入的声音。但我仍然认为这在电话中不起作用。而且我看不到选择不同硬件目标的方法。

    【讨论】:

      猜你喜欢
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      相关资源
      最近更新 更多