C# Microsoft Expression-OutputPreviewWindows不工作

C# Microsoft Expression-OutputPreviewWindows不工作,c#,expression,C#,Expression,我正在尝试构建一个简单的测试示例,它使用我的网络摄像头并输出到WIndowsFormHost。这实际上是从示例代码中提取的,但我不确定它为什么不起作用。我的网络摄像头的LED灯亮了,所以我想这意味着我的网络摄像头没有问题 有人能帮我解决这个问题吗?这是我的示例代码 private void Window_Loaded(object sender, RoutedEventArgs e) { job = new LiveJob(); deviceSource

我正在尝试构建一个简单的测试示例,它使用我的网络摄像头并输出到WIndowsFormHost。这实际上是从示例代码中提取的,但我不确定它为什么不起作用。我的网络摄像头的LED灯亮了,所以我想这意味着我的网络摄像头没有问题

有人能帮我解决这个问题吗?这是我的示例代码

private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        job = new LiveJob();

        deviceSource = job.AddDeviceSource(videoDevs.Count > 0 ? videoDevs[1] : null, audioDevs.Count > 0 ? audioDevs[0] : null);
        job.ActivateSource(deviceSource);
        job.ApplyPreset(LivePresets.VC1HighSpeedBroadband16x9);
        job.StartEncoding();
        job.OutputPreviewWindow = new PreviewWindow(new HandleRef(displayPanel, displayPanel.Handle));
        //Console.Read();
        //job.StopEncoding();
    }
此外,当我试图将job.StartEncoding()放入按钮时,我还遇到了一个奇怪的错误,上面写着HREF COMException。谁能告诉我这个错误是什么意思


我找到了我问题的答案

private string Broadcast_Webcam()
    {
        if (_job == null)
        {
            v_Device = EncoderDevices.FindDevices(EncoderDeviceType.Video);
            a_Device = EncoderDevices.FindDevices(EncoderDeviceType.Audio);

            _job = new LiveJob();
            _source = _job.AddDeviceSource(v_Device.Count > 0 ? v_Device[1] : null,                       a_Device.Count > 0 ? a_Device[0] : null);
            _job.ActivateSource(_source);
        }

        if (_job != null)
        {
            _job.ApplyPreset(LivePresets.VC1Broadband4x3);

            PullBroadcastPublishFormat format = new PullBroadcastPublishFormat();
            format.BroadcastPort = 8080;
            format.MaximumNumberOfConnections = 2;
            _job.PublishFormats.Add(format);
            _job.StartEncoding();

        }
        return "Webcam service has been started";
    }
这将毫无问题地工作

第二个问题是一个经常出现的错误。解决这个问题的方法是通过

_job.StopEncoding();
_job.Dispose();
我忘记在处理之前停止编码过程,导致异常