修改系统卷时如何修改 WASAPI 环回捕获卷?

Posted

技术标签:

【中文标题】修改系统卷时如何修改 WASAPI 环回捕获卷?【英文标题】:How to modify WASAPI loopback capture volume when the volume of the system gets modified? 【发布时间】:2020-02-23 00:16:13 【问题描述】:

我正在使用带有环回捕获模式的 WASAPI 来录制我的 Windows 10 笔记本电脑声卡的音频。我在这里按照示例进行操作:https://docs.microsoft.com/en-us/windows/win32/coreaudio/capturing-a-stream,它运行良好。

但是,当我将计算机静音或上下滑动音量时,录音的音量不会改变。我希望它相应地改变并相应地静音,而不是总是播放。我已经考虑通过 Activate 函数 (https://docs.microsoft.com/en-us/windows/win32/api/mmdeviceapi/nf-mmdeviceapi-immdevice-activate) 将 IAudioEndpointVolume 添加到我的 IMM_Device(已经使用 IAudioClient3 激活),但代码现在在 Initialize 调用中崩溃。

有人能做到吗?有什么建议可以从现在开始吗?

非常感谢!

【问题讨论】:

【参考方案1】:

但是,当我将计算机静音或上下滑动音量时,录音的音量不会改变。

Volume Controls

如音频会话中所述,Sndvol 是系统音量控制程序。它显示系统中音频渲染端点设备的音量控制。 (目前,它不显示音频捕获端点设备的音量控制。)要查看特定设备的音量控制,请单击菜单栏中的设备,然后从列表中选择设备名称可用的设备。

也许问题就在这里。您将音频渲染静音,而不是音频捕获。

【讨论】:

以上是关于修改系统卷时如何修改 WASAPI 环回捕获卷?的主要内容,如果未能解决你的问题,请参考以下文章

WASAPI 在 Windows 上捕获的缓冲区大小

在 OS X 上使用 hdiutil 分离卷时出错

ubuntu如何修改分区卷标?

docker中启用挂载卷,docker中的新文件会不会同步到

使用 WASAPI 捕获蓝牙音频数据

使用 mariadb 10.4.8 docker 容器的用户“root”@“localhost”的访问被拒绝,使用 docker compose 并在附加外部卷时发出问题