【问题标题】:Recording system sound using Qt使用 Qt 录制系统声音
【发布时间】:2015-11-26 22:00:23
【问题描述】:

我对录制系统声音有疑问(不是麦克风,而是整个系统声音 - 从 PC 进入扬声器的所有内容)。我知道通常我应该使用 WASAPI 或 BASS,但是 WASAPI 有如此糟糕的文档(至少对我而言),我只是不知道他们实际上想让我做什么来完成这项工作。与优秀的 Qt 示例相比,BASS 文档也没有那么吸引人。

是否有任何 Qt 包装器或类似的东西可以让我在不直接使用 WASAPI 的情况下以简单的方式捕获此端点音频?

【问题讨论】:

  • Windows 上的 Qt 仍然无可救药地卡在 MME 上。
  • 那么有什么方法可以在不分析 M$ 提供的这些可怕样本的情况下执行这种简单的方法吗? Qt 以简单的方式做到这一点 - 只给出部分代码做一件特定的事情,并附上简短的评论为什么看起来像这样。无论如何,大多数时候它是不言自明的。与此同时,M$ 提供了一个样本,它可以同时做几件事,让你一个人呆着,比如“一两个月,你会猜出里面是什么,为什么会这样”。
  • 嗯,它应该仍然适用于 MME。事情是立体声混音录制在 Windows 中默认是禁用的。因此,请转到控制面板中的录音设备设置,右键单击麦克风和线路下方的空白区域,然后选择“显示禁用的设备”,然后启用它。之后,它应该对 Qt 可见。
  • 嗯,程序会自动启用它吗?我的意思是 - 我希望它相当便携,并且需要用户最少的干预。启用此设备并不像安装模拟麦克风的第 3 方音频驱动程序作为端点录音机那样糟糕,我的意思是 -> vb-audio.pagesperso-orange.fr/Cable/index.htm 。然而它仍然不是“我点击它就可以了!耶!”。实际上我命令它显示禁用的设备,但我仍然看不到任何新内容。
  • 不是来自 Qt。它只是使用系统提供的东西。 M$ API 可能有可能——我不知道,我尽可能避免使用他们的东西。

标签: c++ qt audio


【解决方案1】:

如 cmets 中所述,在您显示隐藏设备并从控制面板的声音设置中启用“立体声混音”录音设备后,该设备将可以在 Qt 中使用。

您可以快速查询系统以验证:

auto info = QAudioDeviceInfo::availableDevices(QAudio::AudioInput);
foreach (auto i, info) qDebug() << i.deviceName();

对我来说输出:

"Microphone (Realtek High Defini"
"Stereo Mix (Realtek High Defini"

从那时起,您可以关注Qt documentationtutorials

【讨论】:

  • 但是我看不到新设备,正常吗?
  • 在我下令显示隐藏后实际上没有什么可以启用的。没有什么新东西。
  • 在这种情况下,您的设备驱动程序可能不支持它。
  • 这是个问题 - 如果不仅我的驱动程序不支持它怎么办?
  • 这不是一个经常使用的功能。获取一个信号分配器,一条额外的电缆,将分配器插入线路输出,将一端插入扬声器,另一端插入线路输入,然后您就设置好了。顺便说一句,我这里也有一个 1000 美元的专业 USB 音频接口,它也不支持立体声输出。
猜你喜欢
  • 1970-01-01
  • 2011-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
  • 2012-07-17
相关资源
最近更新 更多