android7.1+msm8937双MIC改为单MIC(晓龙相机录像声音小)
android7.1+msm8937雙MIC改為單MIC(曉龍相機(jī)錄像聲音小)
?
1.????問題背景
曉龍相機(jī)錄像的時(shí)候,回播視頻發(fā)現(xiàn)外放聲音非常小,但如果用耳機(jī)來聽則正常。
2.????產(chǎn)品和參考設(shè)計(jì)MIC的差別
? | 我們產(chǎn)品 | 開發(fā)板 |
MIC_IN1_P/M | 主MIC | 主MIC |
MIC_IN2_P/M | 耳機(jī) | 耳機(jī) |
MIC_IN3_P/M | NC | 副MIC |
?
3.????錄音時(shí)抓log和分析
錄像的時(shí)候用logcat | grep snd_device抓log,如下
01-03 06:15:41.267?? 704?1035 D audio_hw_primary: select_devices: out_snd_device(2: speaker)in_snd_device(0: )
01-03 06:15:41.267?? 704?1035 D msm8916_platform: platform_can_split_snd_device: snd_device(2)num devices(1) new_snd_devices(5)
01-03 06:15:41.267?? 704?1035 I msm8916_platform: platform_check_and_set_codec_backend_cfg: becf:new_snd_devices[0] is speaker
01-03 06:15:41.267?? 704?1035 E msm8916_platform: platform_check_backends_match: Invalidsnd_device =
01-03 06:15:41.267?? 704?1035 D msm8916_platform: platform_can_split_snd_device: snd_device(2)num devices(0) new_snd_devices(0)
01-03 06:15:41.267 ??704?1035 D audio_hw_primary: enable_snd_device: snd_device(2: speaker)
01-03 06:15:41.309?? 704?1035 D msm8916_platform: platform_can_split_snd_device: snd_device(2)num devices(1) new_snd_devices(-299367304)
01-03 06:15:44.810?? 704?1035 D audio_hw_primary: disable_snd_device: snd_device(2: speaker)
01-03 06:15:44.810?? 704?1035 D msm8916_platform: platform_can_split_snd_device: snd_device(2)num devices(0) new_snd_devices(0)
01-03 06:15:53.127?? 704?1035 D audio_hw_primary: select_devices: out_snd_device(2: speaker)in_snd_device(0: )
01-03 06:15:53.127?? 704?1035 D msm8916_platform: platform_can_split_snd_device: snd_device(2)num devices(1) new_snd_devices(6)
01-03 06:15:53.127?? 704?1035 I msm8916_platform: platform_check_and_set_codec_backend_cfg: becf:new_snd_devices[0] is speaker
01-03 06:15:53.127?? 704?1035 E msm8916_platform: platform_check_backends_match: Invalidsnd_device =
01-03 06:15:53.128?? 704?1035 D msm8916_platform: platform_can_split_snd_device: snd_device(2)num devices(0) new_snd_devices(0)
01-03 06:15:53.128?? 704?1035 D audio_hw_primary: enable_snd_device: snd_device(2: speaker)
01-03 06:15:53.152?? 704?1035 D msm8916_platform: platform_can_split_snd_device: snd_device(2)num devices(1) new_snd_devices(-299367304)
01-03 06:15:57.753?? 704?1035 D audio_hw_primary: disable_snd_device: snd_device(2: speaker)
01-03 06:15:57.753?? 704?1035 D msm8916_platform: platform_can_split_snd_device: snd_device(2)num devices(0) new_snd_devices(0)
01-03 06:18:01.804?? 704?1035 D audio_hw_primary: select_devices: out_snd_device(2: speaker)in_snd_device(0: )
01-03 06:18:01.805?? 704?1035 D msm8916_platform: platform_can_split_snd_device: snd_device(2)num devices(1) new_snd_devices(8)
01-03 06:18:01.805?? 704?1035 I msm8916_platform: platform_check_and_set_codec_backend_cfg: becf:new_snd_devices[0] is speaker
01-03 06:18:01.805?? 704?1035 E msm8916_platform: platform_check_backends_match: Invalidsnd_device =
01-03 06:18:01.805?? 704?1035 D msm8916_platform: platform_can_split_snd_device: snd_device(2)num devices(0) new_snd_devices(0)
01-03 06:18:01.805?? 704?1035 D audio_hw_primary: enable_snd_device: snd_device(2: speaker)
01-03 06:18:01.838?? 704?1035 D msm8916_platform: platform_can_split_snd_device: snd_device(2)num devices(1) new_snd_devices(-299367304)
01-03 06:18:10.213?? 704?1035 D audio_hw_primary: disable_snd_device: snd_device(2: speaker)
01-03 06:18:10.213?? 704?1035 D msm8916_platform: platform_can_split_snd_device: snd_device(2)num devices(0) new_snd_devices(0)
01-03 06:18:10.294?? 704?3960 Daudio_hw_primary: select_devices: out_snd_device(0: ) in_snd_device(87:handset-stereo-dmic-ef)
01-03 06:18:10.295?? 704?3960 D msm8916_platform: platform_can_split_snd_device: snd_device(87)num devices(0) new_snd_devices(0)
01-03 06:18:10.295?? 704?3960 D audio_hw_primary: enable_snd_device: snd_device(87:handset-stereo-dmic-ef)
01-03 06:18:10.331?? 704?3960 D msm8916_platform: platform_can_split_snd_device: snd_device(87)num devices(1) new_snd_devices(-350227112)
01-03 06:18:10.519?? 704?1035 D audio_hw_primary: select_devices: out_snd_device(2: speaker)in_snd_device(0: )
01-03 06:18:10.519?? 704?1035 D msm8916_platform: platform_can_split_snd_device: snd_device(2)num devices(1) new_snd_devices(18)
01-03 06:18:10.519?? 704?1035 I msm8916_platform: platform_check_and_set_codec_backend_cfg: becf:new_snd_devices[0] is speaker
通過紅色部分關(guān)鍵內(nèi)容D audio_hw_primary:select_devices: out_snd_device(0: ) in_snd_device(87: handset-stereo-dmic-ef)可知錄音的時(shí)候用到了副MIC(也就是snd_device),對(duì)應(yīng)的設(shè)備名稱為handset-stereo-dmic-ef
?
我們通過系統(tǒng)采用的hardware\qcom\audio\configs\msm8937\mixer_paths_qrd_sku2.xml文件,查看handset-stereo-dmic-ef的內(nèi)容如下:
<pathname="handset-stereo-dmic-ef">
???????<path name="speaker-dmic-endfire" />
</path>
可知handset-stereo-dmic-ef調(diào)用了speaker-dmic-endfire,接著看speaker-dmic-endfire
???<!-- Dual MIC devices -->
???<path name="speaker-dmic-endfire">
???????<path name="adc1" />
???????<ctl name="DEC2 MUX" value="ADC2" />
???????<ctl name="MI2S_TX Channels" value="Two" />
???????<ctl name="ADC2 MUX" value="INP3" />
</path>
可知采用的是雙升到,要改為單MIC,修改后如下:
<pathname="speaker-dmic-endfire">
???????<path name="adc1" />
</path>
?
同時(shí)新修hardware\qcom\audio\configs\msm8937\msm8937.mk下相關(guān)內(nèi)容,修改前如下:
##fluencetype can be "fluence" or"fluencepro" or "none"
PRODUCT_PROPERTY_OVERRIDES += \
ro.qc.sdk.audio.fluencetype=fluence\
persist.audio.fluence.voicecall=true\
persist.audio.fluence.voicerec=false\
persist.audio.fluence.audiorec=true\
persist.audio.fluence.speaker=true
?
改后
##fluencetype can be "fluence" or"fluencepro" or "none"
PRODUCT_PROPERTY_OVERRIDES += \
ro.qc.sdk.audio.fluencetype=none\
#ro.qc.sdk.audio.fluencetype=fluence\
persist.audio.fluence.voicecall=true\
persist.audio.fluence.voicerec=false\
#persist.audio.fluence.audiorec=true\
persist.audio.fluence.speaker=true
?
?
總結(jié)
以上是生活随笔為你收集整理的android7.1+msm8937双MIC改为单MIC(晓龙相机录像声音小)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高通8xxx平台双MIC设置
- 下一篇: 高通camera驱动分析