I am using Accord (previously AForge) to capture image frames from a webcam.
These images arrive via a VideoCaptureDevice.NewFrame
event:
public delegate void NewFrameEventHandler(object sender, NewFrameEventArgs eventArgs);
public class NewFrameEventArgs : EventArgs
{
public Bitmap Frame { get; }
public NewFrameEventArgs(Bitmap frame);
}
The problem is, I tried to use Observable.FromEvent
, but got lost in the many possible overloads:
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
}
I know I cannot use Observable.FromEventPattern
, but don't know what to use instead, much less how.