How to subscribe to PlaybackController.BrowseTimeChangedEventHandler?

I’m not too keen on delegates so a short explanation would be nice.

I want to be notified when the user changes the playback controller.

Also, it doesn’t seem to work with making a child class to PlaybackController, even though everyting is override-able there.

ClientControl.Instance.GetPlaybackController(playbackFqid) as CustomPlaybackController;

The code above returns a null object when cast as a custom playback controller.

I have been discussing this with colleagues and we are in doubt what you are trying to achieve, can you elaborate on this? Perhaps also describe the user action you want to “catch”.

My dream scenario would be to have Eventhandlers attached to every case of user input on the wpf PlaybackUserControl.

Trigger a event when the user scrolls the timeline, presses pause or changes the playback speed so I can retrieve the information as it happens instead of having a mean thread checking those properties constantly.

When you have your own PlaybackWpfUserControl you have your own PlaybackController. You have your PlaybackController. You can then use all the events of PlaybackControllerBase..

http://doc.developer.milestonesys.com/html/index.html?base=miphelp/class_video_o_s_1_1_platform_1_1_client_1_1_playback_controller_base.html&tree=tree_search.html?search=playbackcontroller

The sample MediaPlaybackViewer (standalone sample) does this.

http://doc.developer.milestonesys.com/html/index.html?base=samples/mediaplaybackviewer.html&tree=tree_2.html

I tried to cast the PlaybackController as PlaybackControllerBase but that didn’t work. The object just went null..

Sorry, my assumption was incorrect – the PlaybackControllerBase is only available for use in standalone MIPSDK – not in the Smart Client.

I suggest you try out the MessageTester plugin, and see what messages are generated when user is pressing each of the possible buttons. (Like PlaybackIndication with PlaybackIndicationData)

Be aware that the ‘Sender FQID’ for these messages contains the ID of the PlaybackController that send’s the messages, and you need to match this

With the ID you expect, either from WindowInformation on your own window or the ID if you created your own PlaybackController.

I’m able to get the functionality I’m after using messages. However, it would be extremely helpful if the first and last message sent when the user is “dragging” the timeline would contain a enum or similar, indicating start and stop of input.

As of right now, I want to sync one users timeline with another’s, and when a user is dragging the timeline, the other user’s timeline is very much behind because of the delay when a couple of hundred messages are to be processed. My dream scenario would be to just sync the timeline on user-end-input.

You could implement a routine where you react to the first message, wait 99 ms where you just queue messages, then react to the messages (react to the last message if they are all the same), etc..