android7.1多路应用可以同时使用麦克风

diff --git a/frameworks/base/services/core/java/com/android/server/audio/RecordingActivityMonitor.java b/frameworks/base/services/core/java/com/android/server/audio/RecordingActivityMonitor.java
old mode 100644
new mode 100755
index 57d55de..13e9159
--- a/frameworks/base/services/core/java/com/android/server/audio/RecordingActivityMonitor.java
+++ b/frameworks/base/services/core/java/com/android/server/audio/RecordingActivityMonitor.java
@@ -136,13 +136,13 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin
                 final AudioFormat clientFormat = new AudioFormat.Builder()
                         .setEncoding(recordingInfo[0])
                         // FIXME this doesn't support index-based masks
-                        .setChannelMask(recordingInfo[1])
+                        .setChannelMask(recordingInfo[1] != AudioFormat.CHANNEL_INVALID ? recordingInfo[1] : AudioFormat.CHANNEL_OUT_DEFAULT)// Modify duanzhanyang 20190905 multiple app record
                         .setSampleRate(recordingInfo[2])
                         .build();
                 final AudioFormat deviceFormat = new AudioFormat.Builder()
                         .setEncoding(recordingInfo[3])
                         // FIXME this doesn't support index-based masks
-                        .setChannelMask(recordingInfo[4])
+                        .setChannelMask(recordingInfo[4] != AudioFormat.CHANNEL_INVALID ? recordingInfo[4] : AudioFormat.CHANNEL_OUT_DEFAULT)// Modify duanzhanyang 20190905 multiple app record
                         .setSampleRate(recordingInfo[5])
                         .build();
                 final int patchHandle = recordingInfo[6];
 

diff --git a/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp b/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
old mode 100644
new mode 100755
index f2eb931..426a549
--- a/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
+++ b/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp
@@ -1661,6 +1661,17 @@ audio_io_handle_t AudioPolicyManager::getInputForDevice(audio_devices_t device,
     config.sample_rate = profileSamplingRate;
     config.channel_mask = profileChannelMask;
     config.format = profileFormat;
+    // Modify duanzhanyang 20190905 multiple app record begin
+    for (size_t input_index = 0; input_index < mInputs.size(); input_index++) {
+        sp<AudioInputDescriptor> desc;
+        desc = mInputs.valueAt(input_index);
+        if (desc->mProfile == profile) {
+            audioSession->changeActiveCount(1);    // reference count add
+            desc->addAudioSession(session, audioSession);
+            return desc->mIoHandle;
+        } 
+    }
+    // Modify duanzhanyang 20190905 multiple app record  end
 
     status_t status = mpClientInterface->openInput(profile->getModuleHandle(),
                                                    &input,
@@ -1714,7 +1725,6 @@ status_t AudioPolicyManager::startInput(audio_io_handle_t input,
         ALOGW("startInput() unknown session %d on input %d", session, input);
         return BAD_VALUE;
     }
-
     // virtual input devices are compatible with other input devices
     if (!is_virtual_input_device(inputDesc->mDevice)) {
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值