对于android平台可以在一个xml文件里面很方便的配置音频的通路
比如:喇叭走线路输出AU_LOLP/N,后面一般再外接一个小功放
耳机走HPL/HPR
听筒走HSP/HSN
首先我们使用的不是二合一的喇叭配置(二合一表示喇叭和听筒走同一路输出path),因此ProjectConfig.mk文件需要关闭如下宏
MTK_2IN1_SPK_SUPPORT,将 MTK_2IN1_SPK_SUPPORT = no
其次我们喇叭走的是线路输出,因此ProjectConfig.mk文件需要设置
MTK_AUDIO_SPEAKER_PATH = int_spk_amp
补充1:如果喇叭和耳机走的都是HPL/HPR,则ProjectConfig.mk文件需要设置
MTK_AUDIO_SPEAKER_PATH = int_hp_amp
现在我们看下音频path配置的文件需要怎么配置
对于喇叭配置如下:
<!--speaker output-->
<path name="speaker_output" value="turnon">
<kctl name="Speaker_Amp_Switch" value="On" />
</path>
<path name="speaker_output" value="turnoff">
<kctl name="Speaker_Amp_Switch" value="Off" />
</path>
对于耳机配置如下:
<!--headphone output-->
<path name="headphone_output" value="turnon">
<kctl name="Audio_Amp_R_Switch" value="On" />
<kctl name="Audio_Amp_L_Switch" value="On" />
</path>
<path name="headphone_output" value="turnoff">
<kctl name="Audio_Amp_R_Switch" value="Off" />
<kctl name="Audio_Amp_L_Switch" value="Off" />
</path>
对于听筒配置如下:
<!--receiver output-->
<path name="receiver_output" value="turnon">
<kctl name="Voice_Amp_Switch" value="On" />
</path>
<path name="receiver_output" value="turnoff">
<kctl name="Voice_Amp_Switch" value="Off" />
</path>
如果是二合一的喇叭,配置如下:
<!-- 2-in-1 speaker output-->
<path name="two_in_one_speaker_output" value="turnon">
<kctl name="Speaker_Amp_Switch" value="On" />
</path>
<path name="two_in_one_speaker_output" value="turnoff">
<kctl name="Speaker_Amp_Switch" value="Off" />
</path>
一般很多没有声音的问题,该这个文件都是可以改好的,不同的平台文件的名字可能会有些差异,但是内容都是差不多的,如果路径配置正常,但是还没有声音的话,需要注意检查功放是否有使能,使能需要在驱动里面进行设置,设置的函数一般是Speaker_Amp_Change或Voice_Amp_Change函数里面。