1

私はWPFを使用してアプリケーションを構築しようとしています。アプリケーションは基本的に、Webカメラからビデオを取得してストリーミングする必要があります(この部分は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 に答える