【问题标题】:c# - expression encoder - does not capture system audioc# - 表达式编码器 - 不捕获系统音频
【发布时间】:2014-05-01 18:57:55
【问题描述】:

我正在尝试使用 Expression Encoder 捕获我的网络摄像头和系统音频,网络摄像头工作正常,但系统音频只是静音。

我按照这里的教程进行操作:CodeProject Expression Encoder Tutorial,但它对我不起作用。

当我列出音频设备时,会列出“扬声器...”、“麦克风...”和“耳机...”(因为它们位于系统托盘的播放设备中),但如果我尝试录制从扬声器或耳机我什么都得不到(如果我选择那个,我会得到很好的麦克风音频)。

这是我正在使用的代码:

job = new LiveJob();

LiveDeviceSource lds = job.AddDeviceSource(ledv[0], leda[1]);

FileArchivePublishFormat fileOut = new FileArchivePublishFormat();
fileOut.OutputFileName = string.Format("C:\\Users\\user1\\Desktop\\testvideo-{0:yyyyMMdd_hhmmss}.wmv", DateTime.Now);

job.PublishFormats.Add(fileOut);

lds.PreviewWindow = new PreviewWindow(new System.Runtime.InteropServices.HandleRef(panel1, panel1.Handle));

job.StartEncoding();

job.ActivateSource(lds);

有人知道为什么它不录制系统音频吗?在它应该工作之前我需要处理任何其他设置吗?

感谢您的宝贵时间。

编辑:

我决定在编码时打印出 job.CurrentAudioVolume 以查看它是否曾经改变,但它总是位于 0。如果我将音频设备更改为麦克风,当有声音时这个值会上升(正如预期的那样)。所以看起来 SDK 肯定无法录制我的系统音频(来自扬声器或耳机)。

【问题讨论】:

    标签: c# audio-recording expression-encoder expression-encoder-sdk expression-encoder-4


    【解决方案1】:

    好的,我在一位同事的帮助下解决了这个问题。

    基本上耳机/扬声器等只是输出设备,因此您需要安装环回驱动程序作为输入设备。

    Sourceforge/Github 上有一个免费的,效果很好。只需选择它作为音频设备。

    有一个小问题,我有一个“记录”/“停止”按钮,它调用 job.StopEncoding();但是选择了环回音频驱动程序 StopEncoding() 会挂起窗口,我猜是因为环回驱动程序没有正确停止,但是如果您调用 job.RemoveDeviceSource(deviceSource);在你调用 StopEncoding() 然后在下一个 StartEncoding() 之前重新添加它工作正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 2016-03-18
      • 2014-09-21
      • 1970-01-01
      相关资源
      最近更新 更多