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>


目录
相关文章
|
数据采集 前端开发 Android开发
Android平台RTMP推送或GB28181设备接入端如何实现采集audio音量放大?
我们在做Android平台RTMP推送和GB28181设备对接的时候,遇到这样的问题,有的设备,麦克风采集出来的audio,音量过高或过低,特别是有些设备,采集到的麦克风声音过低,导致播放端听不清前端采集的audio,这时候,就需要针对采集到的audio,做音量放大处理。
|
编解码 Android开发 数据安全/隐私保护
Android平台外部编码数据(H264/H265/AAC/PCMA/PCMU)实时预览播放技术实现
好多开发者可能疑惑,外部数据实时预览播放,到底有什么用? 是的,一般场景是用不到的,我们在开发这块前几年已经开发了非常稳定的RTMP、RTSP直播播放模块,不过也遇到这样的场景,部分设备输出编码后(视频:H.264/H.265,音频:AAC/PCMA/PCMU)的数据,比如无人机或部分智能硬件设备,回调出来的H.264/H.265数据,除了想转推到RTMP、轻量级RTSP服务或GB28181外,还需要本地预览甚至对数据做二次处理(视频分析、实时水印字符叠加等,然后二次编码),基于这样的场景诉求,我们开发了Android平台外部编码数据实时预览播放模块。
137 0
|
7天前
|
编解码 开发工具 Android开发
Android平台实现屏幕录制(屏幕投影)|音频播放采集|麦克风采集并推送RTMP或轻量级RTSP服务
Android平台屏幕采集、音频播放声音采集、麦克风采集编码打包推送到RTMP和轻量级RTSP服务的相关技术实现,做成高稳定低延迟的同屏系统,还需要有配套好的RTMP、RTSP直播播放器
|
4月前
|
自然语言处理 程序员 Windows
[UE虚幻引擎] DTSpeechVoice 文字转语音播放 插件说明
这个插件用于在虚幻引擎(UE)中通过蓝图将文本转化为语音播放,利用Windows内置的语音引擎,支持Win10和Win11。确保电脑已安装语音系统,可能需要额外下载语言包以支持多语言播放。蓝图操作包括添加Speech Voice Component到Actor,使用Speak节点播放文本,Set Volume调整音量,Set Rate改变播放速度,Pause和Resume控制播放状态,Stop则停止播放且无法恢复。此外,Get Tokens和Set Token用于管理语音类型。更多详情可访问[80后程序员](https://dt.cq.cn/archives/1008?from=aliyun)
50 5
|
11月前
|
存储 Cloud Native Linux
音视频 ffplay播放控制
音视频 ffplay播放控制
|
API Android开发 内存技术
android 采集PCM音频数据并播放(支持USB摄像头MIC)
android 采集PCM音频数据并播放(支持USB摄像头MIC)
546 0
|
iOS开发
iOS 多条音频拼接为一条音频进行播放
把多条mp3音频合并为一条保存并进行播放
320 0
|
测试技术 API Android开发
【Android 高性能音频】OboeTester 音频性能测试应用 ( Oboe 输出测试参数 | API 选择 | 音频输出设备选择 | 采样率 | 通道 | 采样格式 | 播放偏好 )(一)
【Android 高性能音频】OboeTester 音频性能测试应用 ( Oboe 输出测试参数 | API 选择 | 音频输出设备选择 | 采样率 | 通道 | 采样格式 | 播放偏好 )(一)
321 0
【Android 高性能音频】OboeTester 音频性能测试应用 ( Oboe 输出测试参数 | API 选择 | 音频输出设备选择 | 采样率 | 通道 | 采样格式 | 播放偏好 )(一)
|
测试技术 API Android开发
【Android 高性能音频】OboeTester 音频性能测试应用 ( Oboe 输出测试参数 | API 选择 | 音频输出设备选择 | 采样率 | 通道 | 采样格式 | 播放偏好 )(二)
【Android 高性能音频】OboeTester 音频性能测试应用 ( Oboe 输出测试参数 | API 选择 | 音频输出设备选择 | 采样率 | 通道 | 采样格式 | 播放偏好 )(二)
271 0
【Android 高性能音频】OboeTester 音频性能测试应用 ( Oboe 输出测试参数 | API 选择 | 音频输出设备选择 | 采样率 | 通道 | 采样格式 | 播放偏好 )(二)
FFMPEG音频视频开发:QT采集摄像头数据帧与声卡音频通过FFMPEG实时推流到RTMP服务器(v1.0)
FFMPEG音频视频开发:QT采集摄像头数据帧与声卡音频通过FFMPEG实时推流到RTMP服务器(v1.0)
871 0