有个需求是要求两个应用能够同时录音,但是默认情况下开启一个录音应用再开启另外一个的话之前的录音就会被拦截,只有一个应用能够录音。
在Android 10以后,支持了共享音频策略,具体可参见google官方文档共享音频输入。
同时,这篇文章也给出了Android 10 和 Android 11的适配方法(Android12还需要其他修改)。只需要在
/frameworks/av/services/audiopolicy/service/AudioPolicyService.cpp
中将allowCapture的值修改为true或者在isVirtualSource()添加录音的音源即可。
修改如下:
bool AudioPolicyService::isVirtualSource(audio_source_t source)
{
switch (source) {
case AUDIO_SOURCE_VOICE_UPLINK:
case AUDIO_SOURCE_VOICE_DOWNLINK:
case AUDIO_SOURCE_VOICE_CALL:
case AUDIO_SOURCE_REMOTE_SU