Coordination of ImageViewerWpfControls to a play independent playback video such that they are all in synch.

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.

I think I just found the answer. The PlaybackController has PlaybackTime property. Sometimes the answer is staring at you in the face.

I am happy if you found the answer that work for you. There is one thing I was wondering: Did you try to let all the ImageViewerWpfControl share the same PlaybackController? This would have been my advise for what you describe.

Hi Bo, No I did not as I referring to some existing in house code that created a individual PlaybackController for each ImageViewerControl. Thus made the false assumption that I needed one for each one. Now that I am utilising a single controller I can definitely see that the single controller keeps all the ImageViewerControls in synch automatically. So I just manage the synchronisation of the my timer to the PlaybackController. I now realise the existing use case in the existing code needed individual PlaybackControllers while my use case is different. Thanks, using a single PlaybackController will definitely simplify synchronisation in my use case.