android設定主mic/副mic錄音

來源:互聯網
上載者:User

標籤:fun   標頭檔   led   cdb   code   process   通過   msm   path   

//添加MIC設定參數

/hal/audio_extn/audio_extn.c@@ -75,6 +75,7 @@ struct audio_extn_module {     bool ras_enabled;     struct aptx_dec_bt_addr addr;     struct audio_device *adev;+    int mic_choose; };  static struct audio_extn_module aextnmod;@@ -838,6 +839,7 @@ void audio_extn_set_parameters(struct audio_device *adev,    if (adev->offload_effects_set_parameters != NULL)        adev->offload_effects_set_parameters(parms);    audio_extn_set_aptx_dec_bt_addr(adev, parms);+   audio_extn_set_mic_choose_parameters(parms); }  void audio_extn_get_parameters(const struct audio_device *adev,@@ -1478,3 +1480,29 @@ int audio_extn_set_device_cfg_params(struct audio_device *adev,      return 0; }// 擷取mic參數int audio_extn_get_mic_choose_parameters(void){    ALOGD("%s: mic_choose:%d", __func__, aextnmod.mic_choose);    return aextnmod.mic_choose;}// 設定mic參數void audio_extn_set_mic_choose_parameters(struct str_parms *parms){    int ret;    char value[32] = {0};    ret = str_parms_get_str(parms, "MIC_CHOOSE", value, sizeof(value));    ALOGD("mic_choose_ret:%d", ret);    if (ret >= 0) {        if (strcmp(value, "primary_mic") == 0) {            aextnmod.mic_choose = 1;        }else if (strcmp(value, "secondary_mic") == 0) {            aextnmod.mic_choose = 2;        } else {            aextnmod.mic_choose = 0;        }    } else {        aextnmod.mic_choose = 0;    }    ALOGD("%s: mic_choose:%d, value:%s", __func__, aextnmod.mic_choose, value);}

//標頭檔中聲明

/hal/audio_extn/audio_extn.h

+++int audio_extn_get_mic_choose_parameters(void);++void audio_extn_set_mic_choose_parameters(struct str_parms *parms);

hal/msm8916/platform.c

@@ -541,6 +541,7 @@ static const char * const device_table[SND_DEVICE_MAX] = {     [SND_DEVICE_IN_UNPROCESSED_THREE_MIC] = "three-mic",     [SND_DEVICE_IN_UNPROCESSED_QUAD_MIC] = "quad-mic",     [SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC] = "headset-mic",     //添加mic參數,與mixer_paths_mtp.xml對應+    [SND_DEVICE_IN_SECONDARY_MIC] = "secondary-mic", };  // Platform specific backend bit width table@@ -683,6 +684,7 @@ static int acdb_device_table[SND_DEVICE_MAX] = {     [SND_DEVICE_IN_UNPROCESSED_THREE_MIC] = 145,     [SND_DEVICE_IN_UNPROCESSED_QUAD_MIC] = 146,     [SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC] = 147,     //自訂ID+    [SND_DEVICE_IN_SECONDARY_MIC] = 170, };  struct name_to_index {@@ -4313,6 +4315,20 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d                     snd_device = SND_DEVICE_IN_HANDSET_DMIC;                     platform_set_echo_reference(adev, true, out_device);                 }++                /*+                * 上層通過 AudioManager.setParameters("MIC_CHOOSE=xxx") 選擇使用主副麥+                * 主麥:MIC_CHOOSE=primary_mic+                * 副麥:MIC_CHOOSE=secondary_mic+                */+                int mic_choose = 0;+                mic_choose = audio_extn_get_mic_choose_parameters();+                if (mic_choose == 1) {+                    snd_device = SND_DEVICE_IN_HANDSET_MIC;+                } else if (mic_choose == 2) {+                    snd_device = SND_DEVICE_IN_SECONDARY_MIC;+                }+                ALOGD("%s: snd_device mic_choose (%s)", __func__, device_table[snd_device]);             }         }     } else if (source == AUDIO_SOURCE_FM_TUNER) {

hal/msm8916/platform.h

     SND_DEVICE_IN_UNPROCESSED_THREE_MIC,     SND_DEVICE_IN_UNPROCESSED_QUAD_MIC,     SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC,+    SND_DEVICE_IN_SECONDARY_MIC,     SND_DEVICE_IN_END,      SND_DEVICE_MAX = SND_DEVICE_IN_END,

// 設定MIC寄存器參數。

/configs/msm8953/mixer_paths_mtp.xml           <path name="wsa-speaker-and-headphones" />     </path> +    <path name="secondary-mic">+       <path name="adc3"/>+   </path> </mixer>

android設定主mic/副mic錄音

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.