【问题标题】:Capture Sound Output In C#在 C# 中捕获声音输出
【发布时间】:2010-11-20 11:53:15
【问题描述】:

我正在尝试用 C# 构建一个程序,它允许我通过网络将音频和视频从一台计算机流式传输到另一台计算机,该计算机连接到一堆视频/音频设备(投影仪、扬声器, 等等)。理想情况下,我希望能够直接从“演示者”计算机捕获这些数据,而无需插入任何东西。

“输出”计算机上的视频、流媒体和重新显示都运行良好,但我似乎找不到一种无需将电缆插入耳机插孔即可捕获音频输出的好方法并连接到另一台计算机。这个程序的重点是允许无线完成,所以这是一个问题。总而言之,我正在寻找某种 C# 接口,它可以让我在 Windows 机器上捕获声音输出,就好像我在耳机插孔中插入了一些东西一样。

提前感谢您的帮助。

【问题讨论】:

  • 你能给我指出一个关于视频流的好参考吗?我很感兴趣你是如何做视频流和“捕获”的。
  • 我使用 C# 屏幕截图 API (developerfusion.com/code/4630/capture-a-screen-shot) 并将图像压缩为 PNG,然后通过网络简单地发送原始数据。另一方面,它们被重建并绘制在全屏图片框中。看起来会很慢,但我们使用的是专门用于此目的的网络,并且两端的计算机都相当强大。
  • 这是正确的链接,对不起:geekpedia.com/…

标签: c# audio


【解决方案1】:

如果您已经弄清楚了视频方面; NAudio 是处理 Audio 组件的好方法。

假设我们将任务分解为录音,然后是接收和播放组件,那么以下内容应该可以帮助您处理每一方;

录音: http://opensebj.blogspot.com/2009/04/naudio-tutorial-5-recording-audio.html

接收和播放: Play audio from a stream using C#

之间的传输方法取决于您,但如果您已经有一种在两台计算机之间发送流的方法,您应该能够重用它。只需确保您的缓冲区足够大,以便接收计算机上始终有数据可以播放。

【讨论】:

    【解决方案2】:

    在 Windows 中,声卡制造商可以选择提供“您所听到的”输入流,以便您捕获输出。如果您的声卡/驱动程序没有此功能,您可以尝试使用Virtual Audio Cable 来执行相同的操作。

    在 Windows 7 中,有一项新功能可让您直接收听/捕获任何输入流。

    【讨论】:

    • 您能否提供一些有关 Windows 7 功能的详细信息。
    • @Keivan ,我可能在考虑 WASAPI,更具体地说是 Loopback RecordingSample in C++。在 C# 中,我认为 NAudio 提供了这一点。
    【解决方案3】:

    看看本文中的代码,它需要进行相当多的修改才能通过网络传输输出,但这应该还不够难。 http://www.csharpfriends.com/Forums/ShowPost.aspx?PostID=19102

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-22
      • 2014-07-09
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      • 2011-03-14
      相关资源
      最近更新 更多