9820E平台 Audio音频通路常用设置

简介: 笔记

由于我司项目特殊性,使用非标准的音频通路及设备,现做笔记。

  1. 由于平台建议,惯例使用Speaker通路对应Receiver设备,Receiver设备对应Speaker通路。而安卓原生的是Speaker通路对应Speaker设备,Receiver通路对应Receiver设备
  2. 有的项目同时具体Speaker设备和Receiver设备,例如功能较全的FT06。而有的项目产品只有Speaker设备,对应Receiver通路。但是无论哪种,都要进行音频通路和设备的设定 device/sprd/sharkle/sp9820e_2h10_c35/rootdir/system/etc/audio_params/tiny_hw.xml
    详见最底部
  3. 修改使用哪种音频策略可以修改AudioPolicyManagerBase.cpp
  4. 修改使用哪种通路,Speaker和Receiver,可以通过AudioManager.setSpeakerPhoneOn()

修改文件tiny_hw.xml

<!-- TinyHAL configuration file for GOD -->
<tinyalsa-audio device="SC8830 audio">
   <!-- We are able to have most of our routing static so do that -->
   <path>
     <!-- DAC->Headphone -->
     <ctl name="HPL Playback Volume" val="6" />
     <ctl name="HPR Playback Volume" val="6" />
     <ctl name="DAC Playback Volume" val="2" />
     <!-- DAC->Speaker -->
     <ctl name="SPKL Playback Volume" val="2" />
     <ctl name="DAC Playback Volume" val="2" />
     <!-- DAC->Earpiece -->
     <ctl name="EAR Playback Volume" val="6" />
     <ctl name="DAC Playback Volume" val="2" />
     <!-- ADC ->(main mic)  -->
     <ctl name="ADCL Capture Volume" val="5" />
     <ctl name="ADCR Capture Volume" val="5" />
   </path>
<!-- MUST NOT modify private field directly -->
<private name="vb control">
   <func name="VBC Switch" val="arm" />
</private>
<private name="eq update">
  <func name="VBC EQ Update" val="0" />
</private>
<private name="da eq switch">
  <func name="VBC DA EQ Switch" val="0" />
</private>
<private name="ad01 eq switch">
  <func name="VBC AD01 EQ Switch" val="0" />
</private>
<private name="da eq profile">
  <func name="VBC DA EQ Profile Select" val="0" />
</private>
<private name="ad01 eq profile">
  <func name="VBC AD01 EQ Profile Select" val="0" />
</private>
<private name="internal PA">
  <func name="Inter PA Config" val="304" />
</private>
<private name="spk mute">
  <func name="Speaker Mute" val="0" />
</private>
<private name="spk2 mute">
  <func name="Speaker2 Mute" val="0" />
</private>
<private name="earpiece mute">
  <func name="Earpiece Mute" val="0" />
</private>
<private name="hp mute">
  <func name="HeadPhone Mute" val="0" />
</private>
<private name="Aud Codec Info">
  <func name="Aud Codec Info" val="0" />
</private>
<!--
1.for pike2 use substitute of FM mute fuction
for fm da0 mux unselect function, FM mute function
 effect the two channel,so remove name "fm da1 mux".
2. enable fm mux selected function when FM function
is enabled, and disable it when FM function disable.
-->
<private name="fm da0 mux">
  <func name="VBC_FM_UNMUTE_SMOOTH" val="0" />
</private>
<private name="vbc_ad01iis_to_dfm">
    <func name="AD IISMUX" val="0" />
</private>
<!-- END OF MUST NOT modify private field directly -->
<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" />
     <ctl name="ADCR Mixer MainMICADCR Switch" val="1" />
     <ctl name="Aux 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="ADCR Mixer HPMICADCR 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 HPMICADCR Switch" val="0" />
  </path>
</device>
<device name="line-speaker">
  <path name="on">
     <ctl name="SPKL Mixer ADCLSPKL Switch" val="1" />
     <ctl name="SPKL Mixer ADCRSPKL Switch" val="1" />
  </path>
  <path name="off">
     <ctl name="SPKL Mixer ADCLSPKL Switch" val="0" />
     <ctl name="SPKL Mixer ADCRSPKL Switch" val="0" />
  </path>
</device>
<device name="line-headphone">
  <path name="on">
     <ctl name="HPL Mixer ADCRHPL Switch" val="1" />
     <ctl name="HPR Mixer ADCLHPR Switch" val="1" />
  </path>
  <path name="off">
     <ctl name="HPL Mixer ADCRHPL Switch" val="0" />
     <ctl name="HPR Mixer ADCLHPR Switch" val="0" />
  </path>
</device>
<device name="line">
  <path name="on">
     <ctl name="HeadPhone Mute" val="1" />
     <ctl name="ADCL Mixer AILADCL Switch" val="1" />
     <ctl name="ADCR Mixer AIRADCR Switch" val="1" />
     <ctl name="Line Function" val="1" />
     <ctl name="HeadPhone Mute" val="0" />
  </path>
  <path name="off">
     <ctl name="Line Function" val="0" />
     <ctl name="ADCL Mixer AILADCL Switch" val="0" />
     <ctl name="ADCR Mixer AIRADCR Switch" val="0" />
  </path>
</device>
<device name="digital-fm">
  <path name="on">
     <ctl name="Digital FM Function" val="1" />
     <ctl name="DA0 ADDFM MUX" val="1" />
     <ctl name="DA1 ADDFM MUX" val="1" />
     <ctl name="DA0 ADDST MUX" val="0" />
     <ctl name="DA1 ADDST MUX" val="0" />
  </path>
  <path name="off">
     <ctl name="Digital FM Function" val="0" />
     <ctl name="DA0 ADDST MUX" val="0" />
     <ctl name="DA1 ADDST MUX" val="0" />
     <ctl name="DA0 ADDFM MUX" val="0" />
     <ctl name="DA1 ADDFM MUX" val="0" />
  </path>
</device>
<device name="speaker">
   <path name="on">
     <ctl name="EAR Mixer DACLEAR Switch" val="1"/>
     <ctl name="Speaker Function" val="1" />
   </path>
   <path name="off">
     <ctl name="Speaker Function" val="0" />
     <ctl name="EAR Mixer DACLEAR 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="SPKL Mixer DACLSPKL Switch" val="1"/>
     <ctl name="Earpiece Function" val="1" />
   </path>
   <path name="off">
     <ctl name="Earpiece Function" val="0" />
     <ctl name="SPKL Mixer DACLSPKL Switch" val="0"/>
   </path>
</device>
<device name="dual-mic-voice">
   <path name="on">
   </path>
   <path name="off">
   </path>
</device>
</tinyalsa-audio>


目录
相关文章
|
Ubuntu Linux 测试技术
Linux应用开发基础知识——输入系统应用编程(八)
Linux应用开发基础知识——输入系统应用编程(八)
237 0
Linux应用开发基础知识——输入系统应用编程(八)
|
5月前
|
JSON 监控 供应链
抖音电商 API 接口:直播数据实时监控法宝!
在直播电商时代,实时掌握直播间动态是商家制胜关键。抖音电商开放平台提供API接口,助力实现直播数据秒级监控。本文详解如何构建数据监控系统,涵盖实时销量、在线人数、热卖SKU等核心指标,通过智能控场、供应链预警、投流优化等场景提升运营效率。某美妆品牌接入后GMV提升35.7%,违规拦截效率提升200%。立即接入,让流量转化为增长动能!
828 0
|
存储 安全 物联网
Android经典实战之跳转到系统设置页面或其他系统应用页面大全
本文首发于公众号“AntDream”,关注获取更多技巧。文章总结了Android开发中跳转至系统设置页面的方法,包括设备信息、Wi-Fi、显示与声音设置等,并涉及应用详情与电池优化页面。通过简单的Intent动作即可实现,需注意权限与版本兼容性。每日进步,尽在“AntDream”。
1670 2
|
存储 Linux Android开发
Android存储分区与Rockchip平台的分区命名及U-Boot配置
Android存储分区与Rockchip平台的分区命名及U-Boot配置
920 0
|
Android开发 内存技术
Android 通过tinyalsa调试解决录制和播放音频问题
Android 通过tinyalsa调试解决录制和播放音频问题
1144 1
|
Ubuntu Linux Windows
两种Ubuntu和Windows互相共享文件夹的方法
两种Ubuntu和Windows互相共享文件夹的方法
|
安全 Java Shell
Android11以上 Audio音频调试方法
Android11以上 Audio音频调试方法
1909 0
|
开发框架 分布式计算 负载均衡
SpringBoot整合Dubbo+Zookeeper
SpringBoot整合Dubbo+Zookeeper
1008 0
SpringBoot整合Dubbo+Zookeeper
|
开发工具 git
git将一个远程分支的部分修改提交到另一个远程分支
git将一个远程分支的部分修改提交到另一个远程分支
1202 1