0

Webカメラを使用して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()をボタンに入れようとすると、HREFCOMExceptionという奇妙なエラーが発生します。このエラーの意味を誰かに教えてもらえますか?

COMException

4

1 に答える 1

0

私は自分の質問に対する解決策を見つけました。

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";
    }

これは問題なく動作します。

COMEXCEPTIONの絶え間ないエラーであった2番目の質問。それを解決する方法は

_job.StopEncoding();
_job.Dispose();

破棄する前にエンコードプロセスを停止するのを忘れたため、例外が発生しました。

于 2012-08-22T07:48:27.337 に答える