Android下的音频通道配置文件mixer_paths.xml

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:16   2140   0

audio一般集成在pmic上,如

mic(mic1_p,mic1_n,mic_bias 主mic)

aux_mic(mic2_p,mic2_n,mic_bias,辅mic,用来降噪,手机不一定有该mic)

headphone(headmic_bias,headmic_p,headmic_n,headmic_in_det,headset_in_det,hp_l,hp_r,kamp_vcom 耳机)

speaker(spk_n,spk_p 下喇叭 系统声音/听音乐,电话免提)

earpiece(rev_p,rev_n 上喇叭 打电话)

Android选择相应的设备后,会传递给hal层,hal层根据表格记录的通道,传递相应的参数给内核,如


<device name="builtin-mic">
  <path name="on">
     <ctl name="ADC LRCLK Select" val="invert"/>
     <ctl name="ADC1 LRCLK Select" val="invert"/>
     <ctl name="ADCL Mixer MainMICADCL Switch" val="1" />
     <ctl name="Mic Function" val="1" />
  </path>
  <path name="off">
     <ctl name="Mic Function" val="0" />
     <ctl name="ADCL Mixer MainMICADCL Switch" val="0" />
     <ctl name="ADC1 LRCLK Select" val="normal"/>
     <ctl name="ADC LRCLK Select" val="normal"/>
  </path>
</device>

<device name="back-mic">
  <path name="on">
     <ctl name="ADCR Mixer AuxMICADCR Switch" val="1" />
     <ctl name="Aux Mic Function" val="1" />
  </path>
  <path name="off">
     <ctl name="Aux Mic Function" val="0" />
     <ctl name="ADCR Mixer AuxMICADCR Switch" val="0" />
  </path>
</device>

<device name="headset-in">
  <path name="on">
     <ctl name="ADCL Mixer HPMICADCL Switch" val="1" />
     <ctl name="ADCR Mixer HPMICADCR Switch" val="1" />
     <ctl name="HP Mic Function" val="1" />
  </path>
  <path name="off">
     <ctl name="HP Mic Function" val="0" />
     <ctl name="ADCL Mixer HPMICADCL Switch" val="0" />
     <ctl name="ADCR Mixer HPMICADCR Switch" val="0" />
  </path>
</device>

<device name="speaker">
   <path name="on">
     <ctl name="SPKL Mixer DACLSPKL Switch" val="1" />
     <ctl name="Speaker Function" val="1" />
   </path>
   <path name="off">
     <ctl name="Speaker Function" val="0" />
     <ctl name="SPKL Mixer DACLSPKL Switch" val="0" />
   </path>
</device>

<device name="headphone">
   <path name="on">
     <ctl name="HPL EAR Sel" val="HPL" />
     <ctl name="HPL Mixer DACLHPL Switch" val="1" />
     <ctl name="HPR Mixer DACRHPR Switch" val="1" />
     <ctl name="HeadPhone Function" val="1" />
   </path>
   <path name="off">
     <ctl name="HeadPhone Function" val="0" />
     <ctl name="HPL Mixer DACLHPL Switch" val="0" />
     <ctl name="HPR Mixer DACRHPR Switch" val="0" />
     <ctl name="HPL EAR Sel" val="EAR" />
   </path>
</device>

<device name="earpiece">
   <path name="on">
     <ctl name="EAR Mixer DACLEAR Switch" val="1"/>
     <ctl name="Earpiece Function" val="1" />
   </path>
   <path name="off">
     <ctl name="Earpiece Function" val="0" />
     <ctl name="EAR Mixer DACLEAR Switch" val="0"/>
   </path>
</device>

在调试阶段,我们也可以通过tinymix来切换通道,tinycap采集声音,tinyplay播放 声音,如使用 听筒播放音乐,根据上表(每个平台的配置都不一样,名字可能是tiny_hw.xml,mixer_paths_skuc.xml等)

tinymix "EAR Mixer DACLEAR Switch" "1"
tinymix "Earpiece Function" "1" 
tinyplay /data/江南.wav

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP