能否将一个音频芯片(TLV320AIC3101)的输入与输出端口的左右声道分开独立使用?

蜗牛哦 2017-03-14 03:13:51

环境:dm8168+dvrrdk4.0.0.2

产品采用DM8168作为主控,接TLV320AIC3101,在linux下用ALSA驱动。
现在希望:

1.把音频的左右声道分开利用,即 MIC/LINE IN 的L和R分别接两个不同的麦克风,然后同时说话,想分别获取这两组声音数据。
或者是分别接LINE IN的L声道(歌曲1)和R声道(歌曲2)通过8168采集后可以在LINE OUT的L声道播放歌曲1在R声道播放歌曲2
2.音频播放也分开左右声道,两个应用程序分别播放不同的内容。

请问能否实现?在哪一层作出改动更好?如何解决ALSA设备独占的问题?
感谢!


现在我想用arecord和apaly工具测试只采集一个通道的数据然后只输出一个通道的数据
提示错误arecord: set_params:1087: Channels count non available,貌似通道数只能配置成-c2才行
root@HDMTerm:/mnt/work/test_dev/tlvaic3101/tlv320aic3x_app# arecord -Dhw:0,0 -r48000 -f S32_LE -c1 | aplay -Dhw:0,0 -r48000 -v -V stero
Recording WAVE 'stdin' : Signed 32 bit Little Endian, Rate 48000 Hz, Mono
arecord: set_params:1087: Channels count non available
aplay: playback:2483: read error
...全文
495 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
蜗牛哦 2017-03-15
  • 打赏
  • 举报
回复
现在做回环LINE-IN LINE-OUT测试发现 root@HDMTerm:/mnt/work/test_dev/tlvaic3101/tlv320aic3x_app# arecord -Dhw:0,0 -r48000 -f S32_LE -c2 | aplay -Dhw:0,0 -r48000 -v -V stero LINE IN(L)---->LINE OUT(L) LINE IN(R)---->LINE OUT(R) 驱动程序采集2路模拟信号然后通过i2s数据(保留了左右声道数据)传给cpu 如果只是接左声道输入LINE IN(L)---->LINE OUT(L)有声音,但是LINE OUT(R)也有很小的声音,理论上右声道没有接入音频源,应该没有声音才对,为什么LINE OUT(R)右声道有很小的声音,那很小的声音从哪里来的? 谢谢!
蜗牛哦 2017-03-14
  • 打赏
  • 举报
回复
其实这个问题很简单! 本身 LINE IN(L)---->LINE OUT(L) LINE IN(R)---->LINE OUT(R) 驱动程序采集2路模拟信号然后通过i2s数据(保留了左右声道数据)传给cpu 所以访问音频设备还是跟以前一样 2通道方式访问就ok了

1,319

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧