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

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 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀