I have mostly built a Workspace that is able to dynamically connect to multiple cameras and playback video associated with analytically events created by our external application. Currently able to connect to a camera, and play a video starting at the beginning of a event and disconnect from the camera once the event ends. What I am seeking is a means to appropriately ensure that any of the currently playing video is synchronised to a external timer such that currently playing video is kept in synch with the timer and with each of the other currently playing video. Note that I am not utilising a PlaybackWpfUserControl, only individual PlaybackControllers for each on the ImageViewerWpfControls.
I can crudely sent PlaybackData.Goto messages from the external timer at a fixed period. But ideally I only want to initiate such a seek operation when it is determined that the currently playing video is out of synch by say by more that a second or two. Or alternatively I change to playback speed to synchronise the videos being played back until is it within a second or two.
Thus would like a means to determine the time that playback stream that is being displayed in a ImageViewerWpfControl is so I can perform a comparison.
Found that following message, but was not able to determine from the documentation if this is appropriate.
PlaybackCurrentTimeIndication = “SmartClient.PlaybackCurrentTimeIndication” The PlaybackCurrentTimeIndication can be used to retrieve display time when the playback UserControl, either because of user action or running playback.
If running normal speed playback, this message will be retrieved very often, e.g. 25 times a second.
The actual DateTime will be stored in the Message.Data field.
This message can be used to synchronize other kind of data and text with the video being shown.