将音频麦克风输入共享到Android中的多个应用

问题描述

根据官方documentation

Android 10(API级别29)及更高版本施加了优先级方案,可以在应用程序运行时在它们之间切换输入音频流。在大多数情况下,如果新应用获取了音频输入,则先前捕获的应用将继续运行,但会保持静音。在某些情况下,系统可以继续向两个应用程序传递音频。下面介绍了各种共享方案。

除了某些special cases之外,应用之间没有共享音频。

但是我看到许多应用共享音频输入,而没有上述特殊情况。 例如。 Zoom,当我正在进行缩放通话并启动录音机时,尽管缩放音频的强度降低了,但两个应用程序都在获取音频。

类似地,Omlet arcade能够录制麦克风音频,即使将麦克风访问权限授予其他应用也是如此。

怎么可能?而且根据文档,这是不允许的。

更新: 通过使用Oboe可以实现这一目标。但是并非在所有设备上都一致。这也会在我的实时流式应用中导致同步问题。音频可以延迟听到

解决方法

这在Android 5+中是不可能的。您需要有根电话才能执行此操作。在Omlet Arcade中无论何时玩游戏并打开游戏中的麦克风,Omlet Arcade都会停止接收任何音频输入。但是,Omlet Arcade仍然可以运行,但是您必须重新启动它才能获取语音输入。 不过,在最近的MIUI错误中,人们可以收听Zoom和游戏麦克风应用程序上的通话。就您而言,它可能不是像MIUI和OxygenOS这样的官方Android和Edited Android