我有一个蓝牙低功耗(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音频电缆将我的应用程序的输出连接到另一个应用程序的输入,而不必将它们设置为默认系统设备。
理论上,这应该可以完成我需要做的事情,但是实际上,这种设置并不可靠。
我不明白为什么,但是行为完全不一致。在大多数情况下,更改音频设置(从“应用程序音量和设备首选项”和“音频设备面板”)不会起作用。使用相同的设置,有时会起作用,但有时却不起作用(我的应用程序中的音频在扬声器上播放,而不是在VB电缆输入上播放,等等)...
我不知道问题出在哪里,VB-Audio还是Windows本身?除了此设置,还有其他更可靠的选择吗?
否则,还有其他方法可以使用来自标准Windows音频输入之类的应用程序的自定义音频源吗?
如果有任何不清楚的地方或需要更多信息,请告诉我。
编辑: 我认为this post实际上与我面临的问题相同。