C语言 如何为snd_rawmidi_open()获取正确的设备号?

qkf9rpyu  于 2023-06-21  发布在  其他
关注(0)|答案(1)|浏览(99)

使用amidi -l,我得到了一些卡片结果:

Dir Device    Name
IO  hw:2,0,0  CLASSIC ORGAN CMK3 CLASSIC ORGA
IO  hw:3,0,0  CLASSIC ORGAN CMK3 CLASSIC ORGA
IO  hw:4,0,0  CLASSIC ORGAN CMK3 CLASSIC ORGA
IO  hw:5,0,0  Wireless USB Midi Tranceiver MI

我能够通过使用snd_card_next()迭代声卡,然后使用snd_card_get_longname()比较卡的名称来识别无线设备。但是这些都返回名称,而snd_rawmidi_open需要一个Device,即hw:5,0,0。如何迭代确定无线收发器的设备编号,以便将其用于snd_rawmidi_open功能?

igetnqfo

igetnqfo1#

解决方案是简单地收集从snd_card_next获取的卡片索引,并将其转换为hw:card_index, 0, 0形式的条目,即

sprintf(name, "hw:%d, 0,0", card_index);

相关问题