Android9.0 Audio - 支持多应用同时录音

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的修改思路

猜你喜欢

转载自blog.csdn.net/lwz622/article/details/105688480