1

我有一个应用程序的疯狂想法:会有两个设备。一台设备会接受麦克风输入,通过网络将原始 PCM 字节发送到另一台设备,并且其上的应用程序会使设备认为这些声音来自麦克风。除了作为声音输入部分的馈送字节之外,我已经设法编写了所有内容。

我已经在网上搜索了很长时间,但我找不到任何东西:看起来我不知道如何正确命名问题。

接收器是用原生 C++ 编写的,带有 C# WPF Wrapper for GUI。有谁知道我可以通过 Win32 API 解决这个问题的方法,或者 .NET 中可能有这样的功能?

4

1 回答 1

3

你需要两件事:

  1. 实现符合 PortCI 的驱动程序:请参阅 http://msdn.microsoft.com/en-us/library/windows/hardware/ff536829(v=vs.85).aspx 作为起点
  2. 在您的应用程序中使用此驱动程序来执行您需要的任何音频功能。

在第 1 步,您必须编写一个音频适配器驱动程序,该驱动程序将使用一些现有的内核驱动程序来处理网络适配器。顺便说一句,在这里您必须注意不要从网络中“窃取”不需要的数据包。您必须想办法确定哪些数据包是音频数据包,哪些不是。也许在第一步中,您只为此使用一个专用网络驱动程序。

建议在内核级别工作,以便您的“自定义网络音频设备”被操作系统视为音频设备。Windows 提供了一个不错的 API,用于将您的字节视为音频字节,对其应用过滤器等(另请参阅http://msdn.microsoft.com/en-us/library/windows/hardware/ff538901(v=vs.85) .aspx了解更多信息)

于 2013-07-10T14:09:53.587 回答