This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
产品采用DM8168作为主控,接TLV320AIC3101,在linux下用ALSA驱动。
现在希望:
1.把音频的左右声道分开利用,即 MIC/LINE IN 的L和R分别接两个不同的麦克风,然后同时说话,想分别获取这两组声音数据。
2.音频回放也分开左右声道,两个应用程序分别播放不同的内容。
请问能否实现?在哪一层作出改动更好?如何解决ALSA设备独占的问题?
感谢!
你好:
1.AIC3101有6个模拟输入通道,如果按差分算的话,就是3组。如果你想获得两组声音数据,差分的接法,可以接这三组中的两组,两个麦克风可以都接上MicBias引脚即可。电流应该够的,如果你使用的麦克风,要是micbias的电流驱动要是不够,那恐怕就得用外部的bias了。一般供两个是没有问题的。
2.录音回放,分开左右声道,例如DAC_L1 route到LEFT_LOP/M,DAC_R1 route到RIGHT_LOP/M,这些也可以分开,输入和输出都比较灵活。
但是我想你说的分开影噶不是这个意思吧,你是想说两个声道播放不同的音源?两个声道不可以播放两个不同的音源,因为只有一个I2S,同一时刻只有一个输入。
我想大概应该是用你所说的方式。
我再描述下需求: 用一个播放程序(mplayer)播一首音乐,默认它会占用声卡的两个声道。现在想让第一个播放进程播第一首音乐,使它在左声道播出,然后开启另一个播放进程播另一首音乐,在右声道播出。
跟平常的混音方式有些区别。
请问有没有人能给出这种混音的指导呢?
你好:
3个通道是可以同时使用的,你把他们的mixer打开,就是在做混音。如果不打开,也就是每一时刻只打开一个,就是一个时候只播放一个应用的的音乐。
我说的是数字输入的是只有一路,只能接受1个I2S,不过可以用TDM格式的,实现时分复用。