如何使用C++更改窗口的活动录制设备?
How can you change Window's active recording device using C++?
关于为什么我想这样做来帮助你理解我的困境的细节:
我很高兴能够在Skype通话中将我的录音设备更改为立体声混音,以便人们可以听到我的音频。这是共享音乐/其他音频的有用工具。
我真的很想把它编译成一个音板程序,这样我就可以按下一个按钮,让设备切换到立体声混音,播放声音,然后切换回来。
很简单,但我找不到使用程序更改录音设备的方法。
这个问题正是我想要回答的,但事实并非如此。如何编写软件来播放路由到录音设备的声音剪辑?
还有另一个线程(在C++中选择录音设备(Windows))教我如何找出我有多少录音设备,但没有真正告诉我如何更改它们。
一个可接受的答案是,没有简单的方法可以在不绕过Windows安全性的情况下做到这一点。
Skype 等应用程序绑定到特定的音频设备,并将其用于录制/播放目的。例如,如果Skype用户在音频设置下选择立体声混音作为麦克风设备,那么任何其他应用程序是否能够将其切换到其他设备?它甚至不是Windows安全性,它不止于此 - 您将尝试干扰正在使用的应用程序和API。
实现这一点或多或少干净的方法是完全控制的虚拟设备,特别是将数据从/转发到那里的真实设备。与立体声混音类似,想象一下在Skype上选择的"我的可切换麦克风"设备,Skype正在从中获取数据。这已经内置到Skype中,只要设备实现遵循标准含义,Skype就能够从那里获取数据。从那里您可以自由地从另一个音频源进行真正的捕获,从网络接收,混合,合成波形。是的,您也可以即时切换底层设备 - 这一切都在您的控制之下。这样它就可以工作了。
标准 API 不允许您欺骗应用程序并伪造音频设备和数据。
相关文章:
- 当可输入框在窗口中处于活动状态时获得通知的任何方法
- "错误 (活动) E1696 无法打开源文件 "stdafx.h"--
- glBindTexture 是否覆盖活动纹理单元的内容
- 在使用 gSoap 链接多个 SOAP 服务时启用保持活动状态
- 使用动态编程以有限的资金选择活动
- CMake:Android Studio 原生活动项目无法在项目根目录之外找到第三方库
- 使用 IP 帮助程序的 Windows 中活动 UDP 连接的远程地址
- V8垃圾收集器回调,用于测量GC活动
- C++活动异常机制背后的推理
- 生成线程并在运行时执行其他操作,只要它处于活动状态
- 如何确定boost msm中的特定状态是否为活动状态
- 使用nvprof进行评测时没有GPU活动
- 通过TCP连接到Wi-Fi上的0.0.0.0,而侦听器PC有活动的Wi-Fi,以太网没有'不起作用
- C++ 递减和显示活动方程
- 如何在QT中为QInputDialog输入密码时设置背景非活动和灰色?
- OpenGL:零活动制服
- 使用不同参数匹配器的同一方法ON_CALL AND EXPECT_CALL会产生饱和和活动误差
- GCC (libstdc++) 运行时如何在异常处于活动状态时决定终止 ()
- 如何按z顺序获取第二个活动窗口?
- “B1的多重定义”,即使警卫处于活动状态