如何决定audio的输出路径?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

如何决定audio的输出路径?

3,355 Views
jiangshao
Contributor V

各位尊敬的FAE

我有一块非原装imx6dl sabresd开发板,带有wm8960和hdmi接口,最近根据community上的文章完成了wm8960的porting。但是产生了一个新的问题,不知道是不是因为hdmi和wm8960共用一组i2c导致,它们两者之间存在冲突,播放声音时会黑屏,且声音时有时无。

1,请问有没有办法避免这个问题?

2,若有办法解决冲突的话,可以选择声音从哪里输出吗?例如在bootargs里添加变量之类的。。。

Labels (4)
0 Kudos
3 Replies

2,374 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello Jiangshao,

(1)I2C是否冲突

I2C总线上,HDMI用作获取EDID数据,地址为0X50;WM8960地址是0x1A,所以不会是I2C冲突问题。

(2)HDMI和codec谁输出的问题

HDMI接口有一个Hotplug的定义,如果板子检测到有HDMI线插入,那么Audio就会首先从HDMI输出;如果没有HDMI线,就会从WM8960输出音频,这时就会检测有没有耳机存在或者插入,如有耳机就从耳机输出,如没有耳机,就从WM8960的speaker输出。

(3)硬件的设计检查

当你按照文档porting WM8960时,要核对一下你的WM8960原理图与论坛上(WM8960文档链接上)WM8960原理图是否一致,特别是Headphone检测的GPIO是不同的。

Regards,

Weidong Sun

0 Kudos

2,374 Views
yazhou_android
Contributor I

我这边HDMI音频输出,播放同样时长的视频,要比WM8960慢

比如4分钟的视频,WM8960  4分钟就播放完了,但是HDMI需要4分10s才能播放完成

0 Kudos

2,374 Views
jiangshao
Contributor V

   关于硬件设计,我多次确认过连线,如果原理图没错的话,headphone_det和microphone_det和原装板是一致的。当然我也继续在和厂家确认原理图的正确性。

现在如果插上hdmi线,打开logcat,会有如下现象:

在安卓的设置-》音量里设置闹钟,产生如下信息。似乎会选择从wm8960出声

E/WVMExtractor( 2206): Failed to open libwvm.so

D/Ringtone( 2702): Successfully created local player

W/audio_hw_primary( 2206): out_set_parameters routing=2, ret 1, out 1074358776

W/audio_hw_primary( 2206): card 0, port 0 device 0x2

W/audio_hw_primary( 2206): rate 44100, channel 2 period_size 0xc0

W/AudioFlinger( 2206): write blocked for 445 msecs, 2 delayed writes, thread 0x40cf8008

 

选了音乐,视频,游戏和其他媒体,产生如下信息。似乎会选择从hdmi出声

E/WVMExtractor( 2206): Failed to open libwvm.so

D/Ringtone( 2702): Successfully created local player

W/audio_hw_primary( 2206): do_out_standby... 1074358776

W/audio_hw_primary( 2206): out_set_parameters routing=1024, ret 4, out 1074358776

W/audio_hw_primary( 2206): card 1, port 0 device 0x400

W/audio_hw_primary( 2206): rate 44100, channel 2 period_size 0x300

W/audio_hw_primary( 2206): do_out_standby... 1074358776

其中,card 0wm8960card 1hdmi

0 Kudos