在 C 程序内部,使用libudev
和libasound
,我已经确定 astruct udev_device *device
是声音子系统的一部分udev_device_get_subsystem(device) == "sound"
。现在我已经获得了该设备,我想获得有关它的更多信息以与 ALSA 一起使用。
我想知道如何查询有关该设备的信息,例如播放/捕获、通道数等。此外,我想知道如何查询该设备以获取用于调用 ALSA 的参数snd_pcm_open()
我只能想到解析 的内容/proc/asound/*
,但这看起来非常乏味和僵化。另外,由于 udev 支持检测声音设备,所以对我来说,它应该有(或会有)一些“干净”的机制来获取更多有关它的信息,这似乎是合乎逻辑的。