根据您描述的问题,以下是一步步的排查和解决方案:
vendor/etc/audio_policy_configuration.xml
samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
AudioSource.DEFAULT)是否正确路由到Line-In。tinymix -D 0 'ADC Input' 'LINE_IN' # 设置输入源为Line-In
tinymix -D 0 'Capture Volume' 63 # 设置最大增益(0-63)
tinycap /sdcard/test.wav -d 1 -c 2 -r 48000 -b 16test.wav,若仍无声,继续排查。tinymix -D 0 查看所有控件,关键控件可能包括:LINE_IN(值可能为2)onarch/arm64/boot/dts/freescale/your-board.dts):&i2c3 {
sgtl5000: codec@0a {
compatible = "fsl,sgtl5000";
reg = <0x0a>;
clocks = <&clk IMX8MQ_CLK_SAI1_ROOT>;
VDDA-supply = <®_3v3>;
VDDIO-supply = <®_3v3>;
#sound-dai-cells = <0>;
fsl,line-in-routing = <2>; // 确认Line-In输入通道配置
};
};0x01(选择LINE_IN到ADC)i2cdump 检查寄存器值:adb shell i2cdump -f -y 3 0x0a # 假设I2C总线3,地址0x0atinymix
arecord -D hw:0,0 --dump-hw-paramsaudio.primary..so 是否正确处理输入流。/vendor/etc/audio_effects.xml 和 /vendor/etc/audio_platform_info.xml 是否有冲突配置。adb shell dmesg | grep sgtl5000假设混音器输入源未正确设置:
adb shell tinymix -D 0 'ADC Input Select' 2 # 设置LINE_IN
adb shell tinymix -D 0 'Capture Volume' 50
adb shell tinymix -D 0 'Capture Switch' on
adb shell tinycap /sdcard/fix.wav -d 2 -r 48000 -c 2 -b 16完成以上步骤后,若问题仍未解决,请提供以下信息以便进一步诊断:
audio_policy_configuration.xml 相关片段tinymix -D 0 的输出
举报
更多回帖