私は、Accord(以前はAForge)を使ってウェブカメラから画像フレームをキャプチャしています。EventHandlerから継承しないデリゲートからIObservableを作成するには?
これらのイメージはVideoCaptureDevice.NewFrame
イベントを経由して到着:
public delegate void NewFrameEventHandler(object sender, NewFrameEventArgs eventArgs);
public class NewFrameEventArgs : EventArgs
{
public Bitmap Frame { get; }
public NewFrameEventArgs(Bitmap frame);
}
問題がある、私はObservable.FromEvent
を使用しようとしたが、多くの可能な過負荷で迷子になった:私は、私が使用することはできません知っている
void Run()
{
var videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
VideoCaptureDevice videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
// regular way
videoSource.NewFrame += new NewFrameEventHandler(video_NewFrame);
// intended rx way
var receivedFrames = Observable.FromEvent(????) /////////// How?
}
void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
// do something
}
Observable.FromEventPattern
しかし、代わりに何を使うべきか分かりません。
実際には、最初の引数なしで(つまり、Invokeなしで、代入/割り当て解除の引数のみで)機能しました。 – heltonbiker