Windows上的远程音响系统

时间:2011-05-26 06:34:34

标签: c++ windows winapi mfc

我们的要求是开发远程音响系统,该系统应支持从WindowsXP Onwards开始的所有Windows操作系统。 它类似于http://www.elusiva.com/products/RemoteSound/

我想在这里更清楚地描述功能性......

与使用虚拟chanel的RDP相比,Microsoft有3种不同的选项

  1. 在此电脑上播放

  2. 不要玩

  3. 在远程系统中播放

  4. 因为那个微软正在使用RdpendP.dll和虚拟chanel来控制那三个差异。选项..

    当一个用户选择应该在不在远程系统中的本地系统上播放时,我们的情况恰好与微软相反。使用我们自己注册的虚拟通道。其次,当用户选择在此计算机上播放时,该选项应该在远程系统上播放而不是在本地系统中播放,且延迟较低...

    我们的方法:

    我们刚创建了一个虚拟客户端dll并在(HCURRENT_USER / Software / Microsoft / Terminal Server Client / Default / Addin)注册。现在我们可以使用终端服务器创建虚拟通道。

    问题:

    1. 第一个问题是如何将声音从终端服务器重定向到客户端(这样当一个媒体播放器在终端服务器上播放时,它应该在客户端系统上播放)。我们尝试使用WASAPIS从终端服务器捕获声音端点设备扬声器和使用WTSVirtualWrite将音频数据写入虚拟通道然后在客户端我们使用getbuffer方法来渲染它来编写客户端端点设备,但我认为这是非常糟糕的方法和巨大的延迟即将到来。 因此,如果我们将在终端服务器端播放的声音重定向到客户端音频设备,这是更好的方法但是如何使用虚拟通道和终端服务器API或任何其他Windows API实现这些实现,我们认为这里不是捕获和呈现.. 应该为此进行哪些注册表更改......

    2. 第二个问题是如何在音量混合设备扬声器中添加一个虚设扬声器图标(一个组合框将出现在设备扬声器上,这里我们将有两个带有属性的差异扬声器图标,一个是HDRealtalk支持的第二个是我们的演讲者,只有演讲者属性一般)

    3. 注意:这里不是编写虚拟音频驱动程序或我们自己的audiodrv,而是如何实现它。

      1. 第三个问题是如何支持我们自己的编解码器(如verbois)...... (这里我们创建了一个.acm文件,但是如何支持它,我们已经通过了差异ACM功能,如ACMDriverAdd,ACMDrvClose,ACMOpen,但我们没有实现它的想法)......

      2. 第四个问题是如何从麦克风到客户端系统进行捕获和渲染(比如从终端服务器麦克风捕获到本地捕获设备并在那里播放)......

      3. 我们的要求就像从Windows XP开始以来所有Windows操作系统都应该支持..

1 个答案:

答案 0 :(得分:0)

你可以随时使用icecast。只需要一些脚本和edcast,你应该很好。

其他选项包括Mumble。