liuyu进阶 2022-09-04 11:06 采纳率: 50%
浏览 177

Linux获取音频设备列表

我想要获取我的Linux系统上可用的所有音频设备的列表。然后我会将这个列表显示在一个组合框中,用户将从中选择用于录制/播放的设备。根据用户的选择,我将构建QAudioInput和QAudioOutput进行录制/播放。Qt:获取Linux中可用音频设备的列表

根据Qt文档,这可以通过使用QAudioDeviceInfo::availableDevices静态方法来完成。此方法返回我系统中所有可用音频设备的列表。

我已经使用这种方法来列出音频设备的数量。这个方法应该返回一个只包含两个元素的列表,因为我的系统中安装了两个声卡(一个在主板上,另一个是USB设备)。但它返回了一个包含23个项目的列表。当我访问他们的名字,我得到了类似下面 -

default

pulse

front:CARD=Intel,DEV=0

surround40:CARD=Intel,DEV=0

surround41:CARD=Intel,DEV=0

surround50:CARD=Intel,DEV=0

surround51:CARD=Intel,DEV=0

surround71:CARD=Intel,DEV=0

dmix:CARD=Intel,DEV=0

dsnoop:CARD=Intel,DEV=0

hw:CARD=Intel,DEV=0

plughw:CARD=Intel,DEV=0

front:CARD=default,DEV=0

surround40:CARD=default,DEV=0

surround41:CARD=default,DEV=0

surround50:CARD=default,DEV=0

surround51:CARD=default,DEV=0

surround71:CARD=default,DEV=0

iec958:CARD=default,DEV=0

dmix:CARD=default,DEV=0

dsnoop:CARD=default,DEV=0

hw:CARD=default,DEV=0

plughw:CARD=default,DEV=0

这背后的原因可能是在后端使用的ALSA API。根据this article ALSA逻辑上将声卡划分为多个逻辑音频设备,Qt API在查询驱动程序时会提取这些音频设备,对应的aplay -L的指令。而aplay -l对应的指令会列出声卡及其对应的设备,这应该是我理想的结果。

我不想列出所有这些名称供用户选择。我想列出类似 -

HDA-Intel

USB-Audio

选择自己想要的声卡..

有什么办法这可以用Qt做什么?如果不是,我真的很想知道在这里可以使用什么其他替代方案。

  • 写回答

2条回答 默认 最新

报告相同问题?

问题事件

  • 创建了问题 9月4日

悬赏问题

  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。
  • ¥20 在easyX库下编写C语言扑克游戏跑的快,能实现简单的人机对战