我正在为嵌入式设备编写应用程序。该设备连接到 8 个麦克风板,因此 8 个 channel 被传输到板上。在 ALSA 中,此设备显示为 HW:3,0。
我打开了 HW:3,0 流并使用:snd_pcm_hw_params_test_channels()
我检查了允许的 channel 数量。输出为 1 - 8。
如果我打开流并将 channel 数设置为 4,会发生什么? ALSA 会丢弃剩下的 4 个 channel ,我得到一个 CH1 的缓冲区吗?甲烷 |甲烷 | CH4 sample 或我得到 CH1 | ... | CH8 在缓冲区中?
谢谢你的帮助,
叛徒
最佳答案
hw_params_*
约束由驱动程序管理。因此驱动程序被告知流有四个 channel ,然后驱动程序负责配置硬件以每帧生成四个样本。
关于linux - 具有 8 个 channel 的 ALSA 捕获流,但打开流为 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60000511/