Android9.0 Audio - 支持多应用同时录音的方法,此方法针对源码mtk6762的修改其他源码作为参考:
--- a/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -1847,6 +1847,7 @@ audio_io_handle_t AudioPolicyManager::getInputForDevice(audio_devices_t device,
reusedInputDesc = desc;
continue;
} else {
+ audioSession->changeActiveCount(1); //2020.04.14 add by lwz
desc->addAudioSession(session, audioSession);
ALOGV("%s: reusing input %d", __FUNCTION__, mInputs.keyAt(i));
return mInputs.keyAt(i);
@@ -2008,6 +2009,7 @@ status_t AudioPolicyManager::startInput(audio_io_handle_t input,
}
// FIXME: disable concurrent capture until UI is ready
+//2020.04.14 modefied by lwz start
#if 0
if (!isConcurentCaptureAllowed(inputDesc, audioSession)) {
ALOGW("startInput(%d) failed: other input already started", input);
@@ -2020,7 +2022,7 @@ status_t AudioPolicyManager::startInput(audio_io_handle_t input,
if (mInputs.activeInputsCountOnDevices() != 0) {
*concurrency |= API_INPUT_CONCURRENCY_CAPTURE;
}
-#else
+//#else
if (!is_virtual_input_device(inputDesc->mDevice)) {
if (mCallTxPatch != 0 &&
inputDesc->getModuleHandle() == mCallTxPatch->mPatch.sources[0].ext.device.hw_module) {
@@ -2117,6 +2119,7 @@ status_t AudioPolicyManager::startInput(audio_io_handle_t input,
}
}
#endif
+//2020.04.14 modefied by lwz end
感谢https://blog.csdn.net/qq_33443989/article/details/103721204的博主提供8.1的修改思路