首页 > 解决方案 > 如何添加自定义 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 音频输入?

如果有任何不清楚的地方或您需要更多信息,请告诉我。

编辑: 我认为这篇文章实际上与我面临的问题相同。

标签: c#audiouwpbluetooth-lowenergy

解决方案


推荐阅读