c# - 如何添加自定义 Windows 音频输入?
问题描述
我有一个通过自定义服务流式传输音频的蓝牙低功耗 (BLE) 设备,并且需要能够在任何 Windows 应用程序中使用它(例如,将音频流式传输到 Skype 或 Google Chrome)。我相信唯一的方法是让这个音频源显示为标准的 Windows 音频输入,但是如何做到这一点呢?
我认为与 BLE 设备交互的最可靠方法是通过 UWP(使用 Windows.Devices.Bluetooth.BluetoothLEDevice),所以我用它来获取音频数据。然后,我使用 Windows.Media.Audio.AudioGraph 与音频系统进行交互。我可以使用 AudioFrameInputNode 从 BLE 音频数据生成 Windows 音频流,并使用 AudioDeviceOutputNode 将其输出到我的应用程序默认输出。
我无法覆盖默认的系统音频输入和音频输出(例如笔记本电脑麦克风和扬声器),因此为了能够将我的应用程序的输出用作其他应用程序的输入,我使用了 VB-Audio(https:/ /www.vb-audio.com/)与“应用程序音量和设备首选项”Windows 功能相结合。这样,我可以使用 VB-Audio Cable 将我的应用程序的输出连接到另一个应用程序的输入,而无需将它们设置为默认系统设备。
理论上,这应该做我需要做的,但实际上,这个设置并不可靠。
我不明白为什么,但行为根本不一致。大多数情况下,更改音频设置(从“应用程序音量和设备首选项”和“音频设备面板”)无效。使用相同的设置,有时它可以工作,但有时不能(我的应用程序中的音频在扬声器上播放,而不是 VB-Cable 输入等)...
我不知道问题出在哪里,VB-Audio 还是 Windows 本身?这种设置有更可靠的替代方案吗?
否则,是否有另一种方法可以使用来自应用程序的自定义音频源,例如标准 Windows 音频输入?
如果有任何不清楚的地方或您需要更多信息,请告诉我。
编辑: 我认为这篇文章实际上与我面临的问题相同。
解决方案
推荐阅读
- amazon-web-services - 如何测量在 Sun Grid Engine 中完成一批作业所需的时间?
- python - 如何在 matplotlib 子图图像轴之间强制相同大小
- html - 为什么我右侧栏的第一个 div 表现得很奇怪?(我的风格都一样)
- python - 如何枚举每个外键的元素
- apache-spark - 为 Spark 2.x SQLContexts 设置 Hadoop 配置属性
- regex - RegEx 谁能帮我只获取里面的内容(# CONTENT #)
- javascript - 模块功能上的 sinon 存根
- python-2.7 - 错误:(-5) 图像为空或函数 cv::SIFT::operator () 中的深度不正确 (!=CV_8U)
- mongoose - mongoos - 使用填充排除虚拟模式字段
- python - 确保 urlpatterns 是 path() 和/或 re_path() 实例的列表