linux - 具有 8 个 channel 的 ALSA 捕获流,但打开流为 4

标签 linux audio embedded embedded-linux alsa

我正在为嵌入式设备编写应用程序。该设备连接到 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/

相关文章:

c++ - 这个 C++ AtomicInt 实现正确吗?

linux - Azure az容器执行命令不执行并且不返回错误

android - android录音音量变化

jquery - jQuery RSS Audio Player-HTML5/Flash后备

java - DataLine 中的 isRunning() 和 isActive() 有什么区别?

c - 通过隐藏 get/set 包装器透明地使用寄存器

linux - npm “error network getaddrinfo ENOTFOUND registry.npmjs.org”

linux - Perf 显示没有内存访问的 block 中的 L1-dcache-load-misses

linux - 如何突出显示文件中后续行之间的差异?

c - 限制内置类型的大小