搜索
bottom↓
回复: 4

LINUX ALSA只有单声道是什么原因

[复制链接]

出0入0汤圆

发表于 2018-7-2 23:08:02 | 显示全部楼层 |阅读模式
ALSA 1.0.25,APLAY 播单声道的WAV时两边耳机都有声。是正常的,因为它就是这效果。但是播2声道的WAV时,却会把两个声道混合同时输出到耳机两边。
我试着把一个声道的音量调成0,注意,还是2声道,结果播放出它是把一个声道的声音两边都一样响。。
另外,它自带的测试用的WAV文件全部都是1声道的。能不能说明什么问题??
而OSS则正常两个声道分开。
各位有LINUX 开发板的试试看会不会出现这样的情况。。。
我的板子是AT91SAM9260。LINUX 2.6.38

出0入0汤圆

 楼主| 发表于 2018-7-2 23:11:09 | 显示全部楼层
之所以不用OSS是因为它播同一首歌,会出现左右声道反调的情况。。试试重复播放同一着歌就能听得出来。比如蔡琴《把月光射下来》。角铁的声音。

出0入0汤圆

发表于 2018-7-3 07:47:17 | 显示全部楼层
mono格式的wav数据应该是指只有一个通道采样,至于在播放的时候是否左右两个耳机都响这是可以通过codec设置的,即使两个耳机都响它俩播放的也都是相同的单个通道的数据。
双声道的数据是分左声道和右声道数据的,通过codec可以分别映射到耳机的左和右,即两个耳机播放不同数据。
1.建议你自己做2个测试的pcm文件,单声道和双声道的,使用正弦波即可,双声道的两个波形留出一个相位差,然后再使用不同的幅值。然后使用aplay -r 8000 -c 2 -f S16_LE --period-size=xxx --buffer-size=yyy yourpcm.pcm
其中,period-size和buffer-size根据你自己的实际情况设置,yourpcm.pcm是你的pcm文件名称。
然后再把耳机的输出直接插到pc的line-in端,打开cooledit进行录音,看看左右声道的数据波形是不是你的pcm文件的波形,通过相位差和幅值的不同可以区分。

2.你看看codec的驱动中音频流的路径设置,是否符合你的需求,即有没有左右声道混加的效果,是否左右声道颠倒等。

出0入0汤圆

 楼主| 发表于 2018-7-4 09:57:37 | 显示全部楼层
winterw 发表于 2018-7-3 07:47
mono格式的wav数据应该是指只有一个通道采样,至于在播放的时候是否左右两个耳机都响这是可以通过codec设置 ...

谢谢指点,问题未解决。。
网上搜到同样的问题很多。可能是个死症。
https://bbs.csdn.net/topics/340039889

出0入0汤圆

发表于 2018-7-4 11:46:10 | 显示全部楼层
CoolBird007 发表于 2018-7-4 09:57
谢谢指点,问题未解决。。
网上搜到同样的问题很多。可能是个死症。
https://bbs.csdn.net/topics/340039 ...

建议直接看看驱动的代码,一个阶段一个阶段的做些试验慢慢排除
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-18 22:50

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表