1

我正在尝试使用 WPF 构建一个应用程序,应用程序基本上需要从您的网络摄像头获取视频并将其流式传输(这部分很像 Skype,我已经完成了这部分)但棘手的部分是我希望用户能够播放他们的视频流。就像他们应该能够画一个小胡子(小胡子只是一个例子,它可以是任何东西......就像一个虚拟白板),另一边的客户应该能够看到它,并且如果可能的话也可以操纵它。

我知道使用 silverlight 可能会更容易,但 WPF 是必须的。我将不胜感激任何帮助!请告诉我一个方法..谢谢。

这是我用来收集流的代码,如果它对你有帮助的话,但我愿意接受任何改变;

_job = new LiveJob();
EncoderDevice videoDev = null;
foreach (EncoderDevice ved in EncoderDevices.FindDevices(EncoderDeviceType.Video))
    if (ved.Name == VideoDevices.SelectedItem.ToString())
        videoDev = ved;

EncoderDevice audioDev = null;
foreach (EncoderDevice aed in EncoderDevices.FindDevices(EncoderDeviceType.Audio))
    if (aed.Name == AudioDevices.SelectedItem.ToString())
        audioDev = aed;
LiveDeviceSource deviceSource = _job.AddDeviceSource(videoDev, audioDev);

_job.ActivateSource(deviceSource);

PullBroadcastPublishFormat outputFormat = new PullBroadcastPublishFormat();
outputFormat.BroadcastPort = 8080;
_job.PublishFormats.Add(outputFormat);

_job.StartEncoding();
4

1 回答 1

1

我的建议是构建一组绘制/操作命令,让它们分别发送到视频,并在另一端重建它,覆盖结果。这将允许简单的双向交互,因为它们都将分别发送更改,它们可以轻松地“撤消”操作,执行非位图操作等。

这样的命令可能是;用这个画笔沿着这些点画一条贝塞尔曲线,在这里应用扭曲变换,使用这些参数,在这里画一个圆圈,在这里召唤胡须等。

于 2011-08-31T07:33:02.997 回答