我对应用程序有这个疯狂的想法:会有两个设备。一个设备将采用麦克风输入,通过网络将原始PCM字节发送到另一个设备,其上的应用程序将使设备认为这些声音来自麦克风。我已经成功地将除了馈送字节之外的所有内容写为声音输入部分。
我已经在网上搜索了很长一段时间,我找不到任何东西:看起来我不知道如何正确地命名问题。
接收器使用C#WPF Wrapper for GUI以本机C ++编写。有没有人知道我可以通过Win32 API解决这个问题的方法,或者在.NET中有这样的功能?
答案 0 :(得分:2)
你需要两件事:
在步骤1中,您必须编写一个音频适配器驱动程序,该驱动程序将使用一些现有的内核驱动程序来处理网络适配器。顺便说一句,在这里你必须注意不要“窃取”来自网络的不需要的数据包。您必须考虑某种方法来确定哪些数据包是音频数据包,哪些数据包不是。也许在第一步中,您只使用一个专用的网络驱动程序。
建议在内核级别工作,以便操作系统将“自定义网络音频设备”视为音频设备。 Windows提供了一个不错的API,可以将您的字节视为音频字节,对它们应用过滤器等等(另请参阅http://msdn.microsoft.com/en-us/library/windows/hardware/ff538901(v=vs.85).aspx了解更多信息)