The Keep By Feenicsâ„¢ system offers an extensible architecture for Video Management System vendors to incorporate their video playback solutions within the native Windows desktop application. Using this extensible architecture the VMS integrator will be able to:
To make the plug-in available to the native application the assembly must be discoverable using the Microsoft Extensibility Framework, by implementing the IVideoPlayerPlugin
interface of the Feenics.Keep.Windows.Contracts.VideoPlayer
package. This package is available from the public Feenics nuget server at https://nuget.feenics.com/nuget.
In addition to implementing the IVideoPlayerPlugin
interface, the plug-in assembly must be installed on the users workstation. Typically the 3rd developer creates an MSI installer to place the plug-in on the Feenics plug-in folder Environment.SpecialFolder.CommonApplicationData
\Feenics\Plugins, and to register an COM components that may be required to work with the particular VMS.
Member Name | Type | Description |
---|---|---|
PluginName | Property (String) | The name to be used when displaying the plugin to the user |
PluginType | Property (Enum) | The Windows system type (WinForms or WPF) that the plugin requires |
ImportCamerasAsync | Method | Returns an Array of Camera objects, based on Login information from the user |
SaveUserCredentials | Event | Commands the plug-host (the native windows app) to persist the user credentials |
SetUserCredentials | Method | Provides the plug-in with the VMS specific credentials that were previously saved for the current user |
ShowVideoPlayer | Method | Commands the plug in to render video in the provided video player container |
SetCameraAsync | Method | Commands the plug-in to select a specific camera as the video source for playing |
Live | Method | Commands the plug-in to begin rendering a live video stream in the assigned video container from the previously set Camera |
Playback | Method | Commands the plug-in to begin playing video in the previously set Video Container from the previously set Camera beginning at the supplied Starting time and stopping at the supplied end time |
PlaybackPosition | Method | Returns the current Time code when the plug-in is in playback mode |
Seek | Method | Commands the plug-in to move the play position to the supplied DateTime for the previously set Camera |
Play | Method | Commands the plug-in to begin playback of video from the previously specified camera |
Pause | Method | Commands the plug-in to stop playback |
Rewind | Method | Commands the plug-in to decrease playback speed. Multiple calls will eventually set the playback speed to a negative number meaning playback is in reverse. |
Forward | Method | Commands the plug-in to increase playback speed. Multiple calls will eventually hit a maximum playback speed value. |
VideoPlayerMouseUp | Event | Instructs the Plug-in that the user has selected it with a mouse click |
TakeSnapshot | Method | returns a byte array image (jpg) of the current frame |
ExportClip | Method | extracts the video based on the Playback values and saves to the filename provided |
PanTilt | Method | Commands the plug-in to reposition the camera as per the supplied PanTilt value |
Zoom | Method | Commands the plug-in to zoom the image (either optically, or digitally, depending on camera capability) |