Android Audio - 支持多應用同時錄音_Android9.0修改方法

支持多應用同時錄音_Android9.0修改方法

修改方法

源碼路徑: sdk\frameworks\av\services\audiopolicy\managerdefault\AudioPolicyManager.cpp

  • 修改說明
    Android9.0 的源碼裏面已經有部分邏輯支持多應用錄音, 不過被 #if 0 了.
    找到註釋處, // FIXME: disable concurrent capture until UI is ready
    一共有兩個地方, 參照以下修改, 兩個宏都要定義哦 Good luck 😄
    #define ANDROID9_0_SUPPORT_MULIT_CHANNEL_RECORDING
    #define ANDROID9_0_SUPPORT_MULIT_CODEC_RECORDING
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
index 81ad0a7..0b3606d 100755
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -1717,7 +1717,7 @@ audio_io_handle_t AudioPolicyManager::getInputForDevice(audio_devices_t device,
                                                      policyMix, mpClientInterface);

 // FIXME: disable concurrent capture until UI is ready
-#if 0
+#ifdef ANDROID9_0_SUPPORT_MULIT_CHANNEL_RECORDING
     // reuse an open input if possible
     sp<AudioInputDescriptor> reusedInputDesc;
     for (size_t i = 0; i < mInputs.size(); i++) {
@@ -1926,6 +1926,7 @@ status_t AudioPolicyManager::startInput(audio_io_handle_t input,
     }

 // FIXME: disable concurrent capture until UI is ready
+#ifndef ANDROID9_0_SUPPORT_MULIT_CODEC_RECORDING
 #if 0
     if (!isConcurentCaptureAllowed(inputDesc, audioSession)) {
         ALOGW("startInput(%d) failed: other input already started", input);
@@ -2035,6 +2036,7 @@ status_t AudioPolicyManager::startInput(audio_io_handle_t input,
         }
     }
 #endif
+#endif

     // Make sure we start with the correct silence state
     audioSession->setSilenced(silenced);

與之相關

Android Audio - 音頻子系統框架簡析
Android Audio - 支持多應用同時錄音_Android4.4修改方法
Android Audio - 支持多應用同時錄音_Android5.1 & Android6.0 修改方法
Android Audio - 支持多應用同時錄音_Android8.1修改方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章